yıllık izin çalışma dosyası

matrax410

Altın Üye
Katılım
20 Eylül 2018
Mesajlar
59
Excel Vers. ve Dili
2016 excel
Altın Üyelik Bitiş Tarihi
05-11-2025
merhaba hocalarım ,

yıllık izin çalışma dosyamın içerisinde kısaca anlattım. örnek bir izin listesi yazdım.

desteğinizi rica ederim.

teşekkürler,
saygılarımla,
 

Ekli dosyalar

matrax410

Altın Üye
Katılım
20 Eylül 2018
Mesajlar
59
Excel Vers. ve Dili
2016 excel
Altın Üyelik Bitiş Tarihi
05-11-2025
merhaba hocalarım ,

hatırlatmadır. desteklerinizi bekliyorum.
teşekkürler ,
 

hasankardas

Altın Üye
Katılım
14 Ağustos 2006
Mesajlar
424
Excel Vers. ve Dili
Ofis 2021ProPlus TR 64 Bit
Altın Üyelik Bitiş Tarihi
18-01-2027
Merhabalar,
tablonuzu daha önce de incelemiştim. Ama Tablonuz da çok detaya gitmişsiniz. Bu tarz hazırlanan bir tablonun hem hesaplaması zordur hem de takibi zordur. Kullanışlı olmaz. Yazdıklarımı tavsiye olarak alın lütfen. Daha basit yapıda olmalı. Forum da daha önce hazırlanmış çok örnek var. İncelemenizi tavsiye ederim.
Yıllık izin de önemli olan bir kaç kriter vardır.
Hak ediş günü,
yıllık izin başlangıç-bitiş
Kalan izin,
İzni kullanan personel vb gibi

Sizin tablonuzdan örnek vereyim. 2024 yılı bitti kullanılan izinleri bu tabloda takip ettiniz. 2025 için yeniden tasarım yapmak zorundasınız, 2024 e bakmak isteniz tekrar açıp tekrar kontrol edilmesi bunlar çok zaman kaybettirir. Oysa bu işleri bir tuş ile yapabilirsiniz.. Excel kullanırken tabloyu 1 kere yapıp yıllarca kullanmak gerek.. Saygılarımla..
 

matrax410

Altın Üye
Katılım
20 Eylül 2018
Mesajlar
59
Excel Vers. ve Dili
2016 excel
Altın Üyelik Bitiş Tarihi
05-11-2025
merhaba hocam ,

yıllık izin tablom aslında çok basit bir yapıda. kişiler çıkacakları izin günleri için "X" işareti koyuyorlar. Bir makro yardımı ile bu X işaretlerini başlangıç bitiş ve gün olarak başka bir sayfaya yazdırmak. bu kadar zor olacğını tahmin etmiyorum.

her sene kişiler ve çıkacakları izinler farklı olacakları için aynı tabloyu her yıl için tekrardan düzenleme yapmam yeterli olacaktır.

bel ki destek olacak başka hocalarım olabilir.

teşekkürler
 

matrax410

Altın Üye
Katılım
20 Eylül 2018
Mesajlar
59
Excel Vers. ve Dili
2016 excel
Altın Üyelik Bitiş Tarihi
05-11-2025
merhaba değerli üstadlarım ,

hatırlatma amaçlı tekrar paylaşıyorum. Desteğinizi rica ederim.

teşekkürler,
sevgiyle kalın...
 

matrax410

Altın Üye
Katılım
20 Eylül 2018
Mesajlar
59
Excel Vers. ve Dili
2016 excel
Altın Üyelik Bitiş Tarihi
05-11-2025
merhaba değerli hocalarım ,

destek bekliyorum. Malum 2025 yılı yıllık izin planlaması başlamak üzere...

teşekkürler,
 

hasankardas

Altın Üye
Katılım
14 Ağustos 2006
Mesajlar
424
Excel Vers. ve Dili
Ofis 2021ProPlus TR 64 Bit
Altın Üyelik Bitiş Tarihi
18-01-2027
merhaba değerli hocalarım ,

destek bekliyorum. Malum 2025 yılı yıllık izin planlaması başlamak üzere...

teşekkürler,

Merhaba size cevap yazdım tekrar yazayım. Tablonuz çok karışık... forumda çok örnek var daha basit hazırlanmış. elbet kodlaması vardır ama 25 yıldır excel ile uğraşan birisi olarak basitte olsa bu tür tablolar ile uğraşmam.. hepimizin zamanı kıymetli.. yazdığımı lütfen yanlış anlamayın.
 

matrax410

Altın Üye
Katılım
20 Eylül 2018
Mesajlar
59
Excel Vers. ve Dili
2016 excel
Altın Üyelik Bitiş Tarihi
05-11-2025
merhaba hocam ,

aslında karışık bir tablo değil. isimler, sicilleri , hakedişler sabit zaman. sadece değişken olacak olan , günlere koyulan X işaretleri. bu X işaretlerini tarihe dönüştürecez. bel ki yardımcı olabilecek başka bir arkadaş olabilir.

sayfanın 1.sheeti üretim tarafından kullanılıyor, 2.sheeti İ.K. tarafından istenen format. bu yüzden Formatta bir değişiklik yapamıyorum. Bu formatı kullanmak zorundayım.

değerli üstadlarımın yanıtlarını bekliyorum.

teşekkürler
selamlar
 
Son düzenleme:

md3m1ray

Altın Üye
Katılım
21 Şubat 2024
Mesajlar
167
Excel Vers. ve Dili
Excel 2021-tr-64 bit
Altın Üyelik Bitiş Tarihi
23-10-2025
bu sekilde bi makro dener misiniz

Kod:
Sub IzinHesapla()

    Dim wsInput As Worksheet
    Dim wsOutput As Worksheet
    Dim lastRow As Long, lastCol As Long
    Dim izinBaslangic As Long, izinBitis As Long
    Dim currentRow As Long, outputRow As Long
    Dim izinGun As Long
    Dim i As Long
    Dim colOffset As Long
    Dim baslangicTarih As String, bitisTarih As String
    
    Set wsInput = ThisWorkbook.Sheets("yillik izin günü")
    Set wsOutput = ThisWorkbook.Sheets("izin baslangic bitis")
    
    lastRow = wsInput.Cells(wsInput.Rows.Count, 1).End(xlUp).row
    lastCol = wsInput.Cells(6, wsInput.Columns.Count).End(xlToLeft).Column
    
    wsOutput.Rows("2:" & wsOutput.Rows.Count).ClearContents
    outputRow = 2
    
    For currentRow = 8 To lastRow
        izinBaslangic = 0
        izinBitis = 0
        izinGun = 0
        colOffset = 9
        
        wsOutput.Cells(outputRow, 1).Value = wsInput.Cells(currentRow, 1).Value
        wsOutput.Cells(outputRow, 2).Value = wsInput.Cells(currentRow, 2).Value
        wsOutput.Cells(outputRow, 3).Value = wsInput.Cells(currentRow, 3).Value
        wsOutput.Cells(outputRow, 4).Value = wsInput.Cells(currentRow, 4).Value
        wsOutput.Cells(outputRow, 5).Value = wsInput.Cells(currentRow, 5).Value
        wsOutput.Cells(outputRow, 6).Value = wsInput.Cells(currentRow, 6).Value
        wsOutput.Cells(outputRow, 7).Value = wsInput.Cells(currentRow, 7).Value
        wsOutput.Cells(outputRow, 8).Value = wsInput.Cells(currentRow, 8).Value
        
        For i = 8 To lastCol
            If wsInput.Cells(currentRow, i).Value = "X" Then
                If izinBaslangic = 0 Then
                    izinBaslangic = i
                End If
                izinBitis = i
                izinGun = izinGun + 1
            ElseIf izinBaslangic > 0 Then
            
                If i - izinBitis > 7 Then
                
                    baslangicTarih = GetFullDate(wsInput, 7, 6, izinBaslangic)
                    bitisTarih = GetFullDate(wsInput, 7, 6, izinBitis + 1)
                    
                    wsOutput.Cells(outputRow, colOffset).Value = baslangicTarih
                    wsOutput.Cells(outputRow, colOffset + 1).Value = bitisTarih
                    wsOutput.Cells(outputRow, colOffset + 2).Value = izinGun
                    
                    colOffset = colOffset + 3
                    izinBaslangic = 0
                    izinBitis = 0
                    izinGun = 0
                End If
            End If
        Next i
        
        If izinBaslangic > 0 Then
            baslangicTarih = GetFullDate(wsInput, 7, 6, izinBaslangic)
            bitisTarih = GetFullDate(wsInput, 7, 6, izinBitis + 1)
            
            wsOutput.Cells(outputRow, colOffset).Value = baslangicTarih
            wsOutput.Cells(outputRow, colOffset + 1).Value = bitisTarih
            wsOutput.Cells(outputRow, colOffset + 2).Value = izinGun
        End If
        
        outputRow = outputRow + 1
    Next currentRow

    MsgBox "Izin hesaplama tamamlandi", vbInformation

End Sub

Function GetFullDate(ws As Worksheet, aySatir As Long, gunSatir As Long, col As Long) As String
    Dim ay As String, gun As String
    ay = ws.Cells(aySatir, col).MergeArea.Cells(1, 1).Value
    gun = ws.Cells(gunSatir, col).Value
    GetFullDate = gun & " " & ay & " 2024"
End Function
 

matrax410

Altın Üye
Katılım
20 Eylül 2018
Mesajlar
59
Excel Vers. ve Dili
2016 excel
Altın Üyelik Bitiş Tarihi
05-11-2025
md3m1ray hocam merhaba,

size ne desem bilmiyorum. elinize , yüreğinize sağlık. mükemmel olmuş. bana zaman ayırıp bu kodlarla ilgilendiğiniz çok çok teşekkür ederim.
sadece 1 güncelleme isteyeceğim.

tarih kısımlarını , 26 haziran 2024 değilde ; 26.06.2024 olarak gelmesini sağlamak ,

ayrıca ben bu tabloyu 2025 ve diğer yıllar için düzenlemek istediğimde , kodların enaltında yer alan ,

255483 burdaki yılı 2025 yapmam yeterli olacak mı.
 

md3m1ray

Altın Üye
Katılım
21 Şubat 2024
Mesajlar
167
Excel Vers. ve Dili
Excel 2021-tr-64 bit
Altın Üyelik Bitiş Tarihi
23-10-2025
Rica ederim.Alttaki fonksyion kısmını bu şekilde düzeltin yılı değiştirmeniz yeterli olacaktır isterseniz onu da bir hücreye baglayip ordan dinamik çekebilirsiniz. ama Şubat'ın 29 çekmediği yıllarda 29 şubata X girilmediginden emin olun veya sutunu silin. Ve Testlerini yapın lütfen .

Kod:
Function GetFullDate(ws As Worksheet, aySatir As Long, gunSatir As Long, col As Long) As String

    Dim ay As String, gun As String, yil As String

    ay = ws.Cells(aySatir, col).MergeArea.Cells(1, 1).Value

    gun = ws.Cells(gunSatir, col).Value

    yil = "2025"

    GetFullDate = Format(DateValue(gun & " " & ay & " " & yil), "dd.mm.yyyy")

End Function
 

matrax410

Altın Üye
Katılım
20 Eylül 2018
Mesajlar
59
Excel Vers. ve Dili
2016 excel
Altın Üyelik Bitiş Tarihi
05-11-2025
md3m1ray hocam merhaba,

tam istediğim gibi oldu ,çok çok teşekkür ederim. Değerli vaktinizi ayırıp , uğraştığınız için tekrar dan elinize sağlık.

İyi ki varsınız.

saygılarımla,
 

md3m1ray

Altın Üye
Katılım
21 Şubat 2024
Mesajlar
167
Excel Vers. ve Dili
Excel 2021-tr-64 bit
Altın Üyelik Bitiş Tarihi
23-10-2025
Rica ederim hocam Olmasına sevindim iyi çalışmalar dilerim
 
Üst