Yıllık İzin Hakediş Hesaplama

ragnorak

Altın Üye
Katılım
4 Haziran 2016
Mesajlar
202
Excel Vers. ve Dili
Excel 2021
Öncelikle tekrardan teşekkür ederim. Şuan bir sorun görünmüyor. Gayet güzel çalışıyor.
 

ragnorak

Altın Üye
Katılım
4 Haziran 2016
Mesajlar
202
Excel Vers. ve Dili
Excel 2021
Kod:
mesai_bas = CDate(RS("BAS_TARIH").Value) + CDate(RS("BAS_SAAT").Value)
mesai_bit = CDate(RS("BIT_TARIH").Value) + CDate(RS("BIT_SAAT").Value)
    
i = 0: b1 = 0: Dakika = 0
Zaman1 = mesai_bas
    Do
    Zaman2 = DateSerial(Year(Zaman1), Month(Zaman1), Day(Zaman1))
    If Weekday(Zaman2, vbMonday) <> WEEKEND1.ListIndex + 1 And Weekday(Zaman2, vbMonday) <> WEEKEND2.ListIndex + 1 Then
        t1 = CDate(Zaman2) + CDate(MEBAS.Value)
        t2 = CDate(Zaman2) + CDate(DateAdd("n", 30, MEBIT)) 'MESAİ SÜRESİ ÇIKIŞ SAATİ +30DK

        If Zaman1 >= t1 And Zaman1 < t2 Then
        Else
        Dakika = Dakika + 10
        End If

        Zaman1 = DateAdd("n", 10, Zaman1)
                
    Else
        Zaman1 = CDate(DateAdd("d", 1, Zaman2)) + CDate(MEBAS.Value)
    End If
    
    Loop Until Zaman1 >= mesai_bit
    
   b1 = Format(Dakika / 60, "#,##0.00")
'   b1 = Int(Dakika / 60) & " Saat  -  " & Dakika - 60 * Int(Dakika / 60) & " Dakika"
Kodu mesai süresini de hesaplamak için üstteki şekilde değiştirdim. Başlangıç tarihi ve Bitiş Tarihi aynı ise sorun yaratmıyor. Ama süre uzayınca sonuç doğru olmuyor.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,615
Excel Vers. ve Dili
Microsoft 365 Tr-64
Aynı buton kodlarının sonuna mı ilave etmek istiyorsunuz?
 

ragnorak

Altın Üye
Katılım
4 Haziran 2016
Mesajlar
202
Excel Vers. ve Dili
Excel 2021
Hayır Farklı Bir Butondan Çalıştırıyorum.
Kod:
mesai_bas = CDate(RS("BAS_TARIH").Value) + CDate(RS("BAS_SAAT").Value)
mesai_bit = CDate(RS("BIT_TARIH").Value) + CDate(RS("BIT_SAAT").Value)
    
b1 = 0: Dakika = 0
Zaman1 = mesai_bas
    Do
    Zaman2 = DateSerial(Year(Zaman1), Month(Zaman1), Day(Zaman1))

        t1 = CDate(Zaman2) + CDate(MEBAS.Value)
        t2 = CDate(Zaman2) + CDate(DateAdd("n", 30, MEBIT)) 'MESAİ SÜRESİ ÇIKIŞ SAATİ +30DK

        If Zaman1 >= t1 And Zaman1 < t2 Then
        Else
        Dakika = Dakika + 10
        End If

        Zaman1 = DateAdd("n", 10, Zaman1)
    
    Loop Until Zaman1 >= mesai_bit
    
   b1 = Format(Dakika / 60, "#,##0.00")

End If
bu şekilde hafta sonlarını iptal ettim.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,615
Excel Vers. ve Dili
Microsoft 365 Tr-64
Bu haliyle dosyanı paylaşabilir misin?
 
Üst