CheckBox İle İzin Süresi Hesaplama

Katılım
9 Ekim 2009
Mesajlar
1,626
Excel Vers. ve Dili
türkçe
2003
Günaydın ;
Ekli dosyada F7 hücresine izin başlangıç tarihini ,F10 hücresine ise izin süresini yazdığımda F13 hücresine izin bitiş tarihini yazdırabilir miyiz.?Ancak hesaplama yaparken günlerin yazılı olduğu 7 adet CheckBox'tan seçili olanları ve I6:I26 hücresine yazılan(Tatil Günleri) tarihleri de saymayıp ,buna göre izin bitiş tarihini nasıl yazdırabiliriz.Yardımcı olur musunuz ?.Saygılar
http://dosya.co/cfkrh1z7oq5b/İZİN_SÜRESİ.xls.html
 
Katılım
9 Ekim 2009
Mesajlar
1,626
Excel Vers. ve Dili
türkçe
2003
Arkadaşlar konu ile ilgili yardımlarınızı bekliyorum
 
Katılım
9 Ekim 2009
Mesajlar
1,626
Excel Vers. ve Dili
türkçe
2003
Sayın Muygun çok teşekkür ederim.Çok güzel düşünmüssünüz.Yalnız F7 ve F10 hücresine veri girişi yaptığımda F13 hücresindeki veriler değişmiyor.
 

muygun

Özel Üye
Katılım
6 Temmuz 2004
Mesajlar
9,104
Excel Vers. ve Dili
Excel-2003 Türkçe
Excel 2003 için;
Araçlar>Makro>güvenlik te makro seviyesini "Düşük (Önerilmez)" seçerek deneyin.
 

muygun

Özel Üye
Katılım
6 Temmuz 2004
Mesajlar
9,104
Excel Vers. ve Dili
Excel-2003 Türkçe
Dosyayı açarken makroları etkinleştiriyormusunuz?
Yada dosyayı açarken makrolar silindi gibi bir uyarı alıyormusunuz? (bazı trial versiyonlarda yada lisanssız versiyonlarda bu olabiliyor)
 
Katılım
9 Ekim 2009
Mesajlar
1,626
Excel Vers. ve Dili
türkçe
2003
Hesaplama yapıyor.Ancak checboxlardan herhangi birinin tik işaretini kaldırıp tekrar butona bastığımda yine aynı tarihi hesaplıyor.
 

muygun

Özel Üye
Katılım
6 Temmuz 2004
Mesajlar
9,104
Excel Vers. ve Dili
Excel-2003 Türkçe
Sub hesapla() makrosunda

For i = 2 To Cells(10, "f") * 2

satırını

For i = 2 To 366
olarak düzenleyin tekrar deneyin.
(Takvimi oluştururken izin günü sayısının 2 katı bir döngünün yeteceğini düşündüm. Bunu bir yıl yapın. Bakalım ne olacak)
 
Katılım
9 Ekim 2009
Mesajlar
1,626
Excel Vers. ve Dili
türkçe
2003
Sanırım Yine sıkıntı var.İzin başlangıcını 01/01/2018 yapıp izin süresini de 50 gün yaptığımda bitiş tarihini 24/12/2018 yapıyor.
 

muygun

Özel Üye
Katılım
6 Temmuz 2004
Mesajlar
9,104
Excel Vers. ve Dili
Excel-2003 Türkçe
hatalı dosyayı (hata durumuyla) ekleyin
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Sayın muygun'un hoşgörüsüne sığınarak, hesaplama makrosu olarak aşağıdaki kodları kullanabilir misiniz?

Kod:
Sub hesapla()
toplam = [F7] + [F10]
For i = [F7] To [F7] + [F10]
    If WorksheetFunction.CountIf(Range("I6:I100"), i) > 0 Then
        toplam = toplam + 1
    ElseIf WorksheetFunction.Index([M3:M15], WorksheetFunction.Weekday(i, 2) * 2 - 1) <> "" Then
        toplam = toplam + 1
    End If
Next i
[F13] = toplam
End Sub
 
Katılım
9 Ekim 2009
Mesajlar
1,626
Excel Vers. ve Dili
türkçe
2003
Sayın Yusuf bey desteğiniz için çok teşekkür ederim.
İzin Başlangıcı:20/04/2018
İzin Süresi:5 Gün
İzinden Sayılmayan Gün:pazar
İzinden Sayılmayan tarih:23/04/2018
yazdığımda normalde
İzin Bitişi Tarihi :26/04/2018 olması gerekirken 27/04/2018 atıyor.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Yanlış hesaplıyor olabilir misiniz?

20/04/2018 Cuma => 1. gün
21/04/2018 Cumartesi => 2. gün
22/04/2018 Pazar => Tatil
23/04/2018 Pazartesi => Resmi tatil
24/04/2018 Salı => 3. gün
25/04/2018 Çarşamba => 4. gün
26/04/2018 Perşembe => 5. gün
27/04/2018 Çarşamba => İşe dönüş.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Pardon ben bitiş tarihi olarak değil, işe dönüş tarihi olarak düşünmüştüm. Eğer iznin son günü hesaplanmak isteniyorsa aşağıdaki gibi dener misiniz?

Kod:
Sub hesapla()
toplam = [F7] + [F10] - 1
For i = [F7] To [F7] + [F10]
    If WorksheetFunction.CountIf(Range("I6:I100"), i) > 0 Then
        toplam = toplam + 1
    ElseIf WorksheetFunction.Index([M3:M15], WorksheetFunction.Weekday(i, 2) * 2 - 1) <> "" Then
        toplam = toplam + 1
    End If
Next i
[F13] = toplam
End Sub
 
Üst