Koddaki hatayı düzeltme

Katılım
4 Eylül 2020
Mesajlar
394
Excel Vers. ve Dili
Excel 2016
Altın Üyelik Bitiş Tarihi
22-11-2022
Merhaba koda ekleme yaptım fakat doğum tarihine göre 50 den yüksekse yaşı 20 yazıyor bütün yıllara yazıyor toplam hakediş de normal olarak hatalı oluyor düzeltemem yardımcı olurmusunuz
238672
Kod:
For x = 1 To 8: b(say, x) = a(i, x): Next x
b(say, 9) = Evaluate("=DATEDIF(" & CLng(a(i, 5)) & "," & CLng(bg) & ",""Y"")") & " YIL " & _
                        Evaluate("=DATEDIF(" & CLng(a(i, 5)) & "," & CLng(bg) & ",""YM"")") & " AY " & _
                        Evaluate("=DATEDIF(" & CLng(a(i, 5)) & "," & CLng(bg) & ",""MD"")") & " GÜN"
b(say, 6) = Evaluate("=DATEDIF(" & CLng(a(i, 7)) & "," & CLng(bg) & ",""Y"")")

For j = 1 To UBound(a, 2) - 16
    trh = DateSerial(a(1, j + 16), Month(Date), Day(Date))
    If trh > bg Then
        b(say, j + 16) = Empty
    Else
        sayi = trh - CDate(a(i, 5))
         sayi1 = CLng(a(i, 6))
        If sayi >= 0 And sayi < 364 Then
            b(say, j + 16) = 0
        ElseIf sayi >= 364 And sayi < 2189 Then
            b(say, j + 16) = 14
        ElseIf sayi >= 2189 And sayi < 5475 Then
            b(say, j + 16) = 20
        ElseIf sayi >= 5475 Then
            b(say, j + 16) = 26
          
    

             End If
            

            If sayi1 >= 50 Or sayi1 <= 18 Then
            b(say, j + 16) = 20
       End If
            End If
 

Ekli dosyalar

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Kodlarınıza ve dosyanıza bakınca çok karışık. Hepsini anlamadan kodlarınıza müdahale değiştirmek ekleme yapmak çok zor.
Var olan Userform ve Modüller içindeki kodlardan arındırılmış bir dosya üzerinde ilerlenebikir diye düşünüyorum.
 
Katılım
4 Eylül 2020
Mesajlar
394
Excel Vers. ve Dili
Excel 2016
Altın Üyelik Bitiş Tarihi
22-11-2022
Ömer hocam merhaba bu bölüm hesaplamayı yapıyor. Ben birşeyler ekledim
Bu bölümü ekledim koda fakat görseldeki gibi bütün yıllara 20 koyuyor
238685
------------------------
If sayi > 0 Then
If b(say, j + 16) <= 16 Then
If sayi1 <= 18 Then
b(say, j + 16) = 20
ElseIf sayi1 >= 50 Then
b(say, j + 16) = 20
End If
-----------------------
Kod:
Dim trh As Date, bg As Date, sP As Worksheet
Set sP = ThisWorkbook.Sheets("PERSONEL")

son = 0
son = sP.Range("A:A").Find("*", , , , xlByRows, xlPrevious).Row

sP.Range("H3:AU" & Rows.Count).ClearContents


a = sP.Range("A2:AU" & son).Value
bg = CDate(Date)
ReDim b(1 To UBound(a), 1 To UBound(a, 2))
For i = 2 To UBound(a)
say = say + 1




For x = 1 To 8: b(say, x) = a(i, x): Next x
b(say, 9) = Evaluate("=DATEDIF(" & CLng(a(i, 5)) & "," & CLng(bg) & ",""Y"")") & " YIL " & _
                        Evaluate("=DATEDIF(" & CLng(a(i, 5)) & "," & CLng(bg) & ",""YM"")") & " AY " & _
                        Evaluate("=DATEDIF(" & CLng(a(i, 5)) & "," & CLng(bg) & ",""MD"")") & " GÜN"
b(say, 6) = Evaluate("=DATEDIF(" & CLng(a(i, 7)) & "," & CLng(bg) & ",""Y"")")

For j = 1 To UBound(a, 2) - 16
    trh = DateSerial(a(1, j + 16), Month(Date), Day(Date))
    If trh > bg Then
        b(say, j + 16) = Empty
    Else
        sayi = trh - CDate(a(i, 5))
         sayi1 = CLng(a(i, 6))
        If sayi >= 0 And sayi < 364 Then
            b(say, j + 16) = 0
        ElseIf sayi >= 364 And sayi < 2189 Then
            b(say, j + 16) = 14
        ElseIf sayi >= 2189 And sayi < 5475 Then
            b(say, j + 16) = 20
        ElseIf sayi >= 5475 Then
            b(say, j + 16) = 26
          
    

End If
        If sayi > 0 Then
If b(say, j + 16) <= 16 Then
If sayi1 <= 18 Then
b(say, j + 16) = 20
ElseIf sayi1 >= 50 Then
b(say, j + 16) = 20
End If


End If

End If

End If
 

Ekli dosyalar

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
2015 de işe girmiş bir kişi için, 2016 ve sonrasına yıllık izin hak edişi hesaplamasında bir hata olduğunu düşünmüyorum.
Siz diyorsunuz ki araba kırmızı ışıkta geçti. Geçmesinde problem yok. Zira elimizde kırmızı da geçilmez diye bir veriyi henüz vermediniz.

Şimdi siz hangi yıla hangi hesaplama ile nasıl bir sonuç elde etmek istediğinizi bize sadece kodlarınızı paylaşarak verirseniz sadece konuyu sizin gibi bilenler ya da ne dediğinizi çabucak anlayanlar cevap verebilir.

Ortada bir excel tablosu var, kodlar var, kodların sonucunda oluşan değerler var.
Ben bunun haricinde bir şey göremiyorum.
 
Katılım
4 Eylül 2020
Mesajlar
394
Excel Vers. ve Dili
Excel 2016
Altın Üyelik Bitiş Tarihi
22-11-2022
Ömer hocam şimdi doğum tarihi 19.09.1963 değilmi giriş tarihi 24.12.2019 kişinin yaşı 50 den büyük hocam ona göre hesaplamasını istiyorum . Hocam siz daha biliyorsunuzdur yıllık izini mevzuata göre hesaplamasını isityorum doğrusu nasılsa bunu yapmak istiyorum
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Yıllık izin hak edişinin tekniğini bilemiyorum.
 
Katılım
4 Eylül 2020
Mesajlar
394
Excel Vers. ve Dili
Excel 2016
Altın Üyelik Bitiş Tarihi
22-11-2022
Teşekkür ederim hocam bilen birisi yardımcı olur inşallah hayırlı günler
 
Üst