• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

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
 
Arkadaşlar konu ile ilgili yardımlarınızı bekliyorum
 
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.
 
Excel 2003 için;
Araçlar>Makro>güvenlik te makro seviyesini "Düşük (Önerilmez)" seçerek deneyin.
 
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)
 
Hesaplama yapıyor.Ancak checboxlardan herhangi birinin tik işaretini kaldırıp tekrar butona bastığımda yine aynı tarihi hesaplıyor.
 
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)
 
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.
 
hatalı dosyayı (hata durumuyla) ekleyin
 
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
 
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.
 
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üş.
 
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
 
Geri
Üst