Izin süresi

Katılım
1 Şubat 2012
Mesajlar
49
Excel Vers. ve Dili
2003 türkçe
Altın Üyelik Bitiş Tarihi
31.12.2022
İzin başlangıç ve bitiş tarihlerini verdiğimizde izin günlerini ve çalışanın haftalık izinli olduğunu gösteren bu programda;Haftalık izinleri gerçek tarihinde göstermiyor , birde işbaşı tarihine renkli dolgu yapabilirmiyiz. Teşekkürler.
 

Ekli dosyalar

Katılım
1 Şubat 2012
Mesajlar
49
Excel Vers. ve Dili
2003 türkçe
Altın Üyelik Bitiş Tarihi
31.12.2022
izin süresi

Konu fonksiyonla çözülemiyorsa makro ile de olabilir. İlgilenen arkadaşlara Teşekkürler..
 
Katılım
1 Şubat 2012
Mesajlar
49
Excel Vers. ve Dili
2003 türkçe
Altın Üyelik Bitiş Tarihi
31.12.2022
izin süresi

Sayın yusuf 44
Program istediğimiz gibi çalıştı teşekkür ederim.
 
Katılım
1 Şubat 2012
Mesajlar
49
Excel Vers. ve Dili
2003 türkçe
Altın Üyelik Bitiş Tarihi
31.12.2022
Sayın Yusuf 44
Programda küçük bir sorun çıktı 13.08.2017 tarihinde 11 gün izne çıkan bir kişinin
haftalık iznide cuma günü.İşbaşı tarihini cuma olarak gösteriyor.Halbuki bir gün
sonrasını göstermesi lazım.bakmanız mümkünmü ..
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Son zamanlarda iş yoğunluğu nedeniyle siteye fazla giremediğimden sorunuzu çok geç gördüm, kusura bakmayın.

Dosyadaki izin makrosunu (module5 içinde yer alıyor) aşağıdakiyle değiştirip dener misiniz?

Kod:
Sub izin()
gün = [G2]
süre = [G4]
hafta = [G6]
eski = WorksheetFunction.Max(2, Cells(Rows.Count, "A").End(3).Row)
Range("A2:E" & eski).ClearContents
With Range("A2:E" & eski).Interior
    .Pattern = xlNone
    .TintAndShade = 0
    .PatternTintAndShade = 0
End With
Range("A2:E" & eski).Font.Bold = False
son = Cells(Rows.Count, "H").End(3).Row
10:
    yeni = Cells(Rows.Count, "A").End(3).Row + 1
    Cells(yeni, "A") = gün
    Cells(yeni, "B") = WorksheetFunction.Weekday(Cells(yeni, "A"), 2)
        If WorksheetFunction.CountIf(Range("G10:G" & son), gün) > 0 Then
            Cells(yeni, "C") = WorksheetFunction.VLookup(Cells(yeni, "A"), Range("G10:H" & son), 2, 0)
            If Cells(yeni, "B") = hafta Then Cells(yeni, "E") = Cells(yeni, "A") + 0
            With Range(Cells(yeni, "A"), Cells(yeni, "E")).Interior
                .Pattern = xlSolid
                .PatternColorIndex = xlAutomatic
                .Color = 5296274
                .TintAndShade = 0
                .PatternTintAndShade = 0
            End With
            gün = gün + 1
            GoTo 10
        ElseIf Cells(yeni, "B") = hafta Then
            Cells(yeni, "E") = Cells(yeni, "A") + 0
            With Range(Cells(yeni, "A"), Cells(yeni, "E")).Interior
                .Pattern = xlSolid
                .PatternColorIndex = xlAutomatic
                .Color = 5296274
                .TintAndShade = 0
                .PatternTintAndShade = 0
            End With
            gün = gün + 1
            GoTo 10
        Else
            Cells(yeni, "D") = süre
            süre = süre - 1
            gün = gün + 1
            If süre > 0 Then GoTo 10
        End If
20:
yeni = Cells(Rows.Count, "A").End(3).Row + 1
If WorksheetFunction.CountIf(Range("G10:G" & son), gün) > 0 Then
    Cells(yeni, "A") = gün
    Cells(yeni, "B") = WorksheetFunction.Weekday(Cells(yeni, "A"), 2)
    If Cells(yeni, "B") = hafta Then Cells(yeni, "E") = Cells(yeni, "A")
    gün = gün + 1
    GoTo 20
ElseIf WorksheetFunction.Weekday(Cells(yeni - 1, "A") + 1, 2) = hafta Then
    Cells(yeni, "E") = Cells(yeni - 1, "A") + 1
    Cells(yeni, "A") = gün
    Cells(yeni, "B") = WorksheetFunction.Weekday(Cells(yeni - 1, "A") + 1, 2)
    gün = gün + 1
    GoTo 20
Else
    Cells(yeni, "A") = gün
    Cells(yeni, "B") = "İŞBAŞI"
    With Range(Cells(yeni, "A"), Cells(yeni, "E")).Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
        Range(Cells(yeni, "A"), Cells(yeni, "E")).Font.Bold = True

End If
[G8] = gün
Range("A2:A" & yeni).NumberFormat = "[$-x-sysdate]dddd, mmmm dd, yyyy"
Range("E2:E" & yeni).NumberFormat = "[$-x-sysdate]dddd, mmmm dd, yyyy"
[H6] = Cells(Cells(Rows.Count, "A").End(3).Row, "A") + 1 - 1

End Sub
 
Katılım
1 Şubat 2012
Mesajlar
49
Excel Vers. ve Dili
2003 türkçe
Altın Üyelik Bitiş Tarihi
31.12.2022
Sayın Yusuf44
program hatasız çalıştı.Teşekkür ederim.Ellerinize sağlık
 
Üst