yıllık izin hakediş

ckarabacak

Altın Üye
Katılım
12 Ocak 2010
Mesajlar
328
Excel Vers. ve Dili
Excel 2010
Altın Üyelik Bitiş Tarihi
10-07-2026
merhaba arkadaşlar

ekli dosyada makro içinde yıllık izin günleri değişimi yapmak istiyorum.

yardımlarınız için şimdiden teşekkür ederim.
 

Ekli dosyalar

vardar07

Destek Ekibi
Destek Ekibi
Katılım
19 Mart 2008
Mesajlar
2,154
Excel Vers. ve Dili
Office 2007 Enterprise
Türkçe
Merhaba. Kırmızılı yerleri isteğinize göre ayarlayın.
Kod:
Function hakedis(isegiristarihi, dogumtarihi, kontrol_yili, gunun_tarihi)
If isegiristarihi = "" Then
hakedis = ""
Exit Function
ElseIf dogumtarihi = "" Then
hakedis = ""
Exit Function
ElseIf kontrol_yili = "" Then
hakedis = ""
Exit Function
ElseIf gunun_tarihi = "" Then
hakedis = ""
Exit Function
End If
zaman_aralıgı = CDate(Format(Format(isegiristarihi, "dd.mm.") & kontrol_yili, "dd.mm.yyyy"))
yer3 = CDate(zaman_aralıgı)
yer = Val((zaman_aralıgı - CDate(isegiristarihi)) * 1) + 1
yer1 = Val(Val(((zaman_aralıgı - CDate(dogumtarihi)) * 1) + 1) / 365.25)
If yer >= 365.25 Then
zaman_aralıgı = Val((yer / 365.25))
Else
zaman_aralıgı = 0
End If
If gunun_tarihi > yer3 Then
If isegiristarihi > 0 Then
If zaman_aralıgı <= 0 Then
hakedis = 0
ElseIf zaman_aralıgı >= 1 And zaman_aralıgı <= 5 Then
hakedis = [COLOR="red"]16[/COLOR]
ElseIf zaman_aralıgı >= 6 And zaman_aralıgı <= 14 Then
hakedis = [COLOR="red"]23[/COLOR]
ElseIf zaman_aralıgı >= 15 And zaman_aralıgı <= 65 Then
hakedis = [COLOR="red"]30[/COLOR]
End If
If zaman_aralıgı > 0 Then
If hakedis <= 14 Then
If yer1 <= 18 Then
hakedis = [COLOR="red"]23[/COLOR]
ElseIf yer1 >= 50 Then
hakedis = [COLOR="Red"]23[/COLOR]
End If
End If
End If
End If
Else
hakedis = ""
End If
End Function
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,760
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Alternatif

KOD:
Kod:
Function hakedis(isegiristarihi, dogumtarihi, kontrol_yili, gunun_tarihi)

If isegiristarihi = "" Then
hakedis = ""
Exit Function
ElseIf dogumtarihi = "" Then
hakedis = ""
Exit Function
ElseIf kontrol_yili = "" Then
hakedis = ""
Exit Function
ElseIf gunun_tarihi = "" Then
hakedis = ""
Exit Function
End If

zaman_aralıgı = CDate(Format(Format(isegiristarihi, "dd.mm.") & kontrol_yili, "dd.mm.yyyy"))
yer3 = CDate(zaman_aralıgı)
yer = Val((zaman_aralıgı - CDate(isegiristarihi)) * 1) + 1
yer1 = Val(Val(((zaman_aralıgı - CDate(dogumtarihi)) * 1) + 1) / 365.25)

If yer >= 365.25 Then
zaman_aralıgı = Val((yer / 365.25))
Else
zaman_aralıgı = 0
End If

If gunun_tarihi > yer3 Then
If isegiristarihi > 0 Then

If zaman_aralıgı <= 0 Then
hakedis = 0
ElseIf zaman_aralıgı >= 1 And zaman_aralıgı <= 5 Then
hakedis = [COLOR="Red"]16[/COLOR]
ElseIf zaman_aralıgı >= 6 And zaman_aralıgı <= 14 Then
hakedis = [COLOR="red"]23[/COLOR]
ElseIf zaman_aralıgı >= 15 And zaman_aralıgı <= 65 Then
hakedis = [COLOR="red"]30[/COLOR]
End If

If zaman_aralıgı > 0 Then
If hakedis <= [COLOR="red"]16 [/COLOR]Then
If yer1 <= 18 Then
hakedis = [COLOR="red"]23[/COLOR]
ElseIf yer1 >= 50 Then
hakedis = [COLOR="red"]23[/COLOR]
End If
End If
End If
End If

Else
hakedis = ""
End If

End Function
 

ckarabacak

Altın Üye
Katılım
12 Ocak 2010
Mesajlar
328
Excel Vers. ve Dili
Excel 2010
Altın Üyelik Bitiş Tarihi
10-07-2026
sayın halit3 merhaba

makro yazılımı yüklendi. istediğim verileri aldım. elinize aklınıza sağlık çok teşekkür ederim.
 

ckarabacak

Altın Üye
Katılım
12 Ocak 2010
Mesajlar
328
Excel Vers. ve Dili
Excel 2010
Altın Üyelik Bitiş Tarihi
10-07-2026
Yıllık izin hakediş

Sayın halit3 tekrar merhaba

ekte göndermiş olduğum dosyanın altında ifade etmeye çalıştığım düzenlemeler konusunda yardımlarınızı rica ediyorum. Muhtemelen makro yazılımı gerekiyor diye düşünüyorum.

Ifadelerimde anlaşılmayan konu var ise detaylı açıklama gönderebilirim.

Destek vereceğiniz umud eder. Iyi çalışmalar dilerim.
 

Ekli dosyalar

ckarabacak

Altın Üye
Katılım
12 Ocak 2010
Mesajlar
328
Excel Vers. ve Dili
Excel 2010
Altın Üyelik Bitiş Tarihi
10-07-2026
sayın halit3 iyi akşamlar

sizden son gönderdiğim dosyada bir iki çalışma daha rica etmiştim. muhtemelen yoğunsunuzdur. bende bu dosya ile vedalaşmak istiyorum artık.

yardımcı olursanız sevinirim
 

Suskun

Altın Üye
Altın Üye
Katılım
27 Kasım 2006
Mesajlar
292
Excel Vers. ve Dili
Excel 19
Altın Üyelik Bitiş Tarihi
24.05.2032
Hakedişler İŞGÜNÜ üzerinden olmalı.

Alternatif

Kod:
Function IzinGunu(GTarihi As Date, izinTarihi As Date, Optional dogumtarihi As Date) As Integer
    Dim Yas, Eski, YasHesapla, izinyili
    'izin Tarihi yaş hesaplatma için gerekli,
    
   
    Eski = False  '10/06/2003 tarihi ve öncesi izin günü hesaplatma Kapalı
    YasHesapla = False    ' 18 yastan kücük 50 yastan büyük olanlar için enaz izin günü hesaplatma
    izinyili = DateDiff("YYYY", GTarihi, izinTarihi)
    If izinyili = 0 Then Exit Function
    If dogumtarihi > 0 Then YasHesapla = True
    
    Yas = DateDiff("YYYY", dogumtarihi, izinTarihi)
    
    If CDate(izinTarihi) <= CDate("10.06.2003") Then Eski = True
    
    If izinyili < 1 Then IzinGunu = 0
    If izinyili >= 1 Then If Eski Then IzinGunu = 12 Else IzinGunu = 14
    If izinyili >= 6 Then If Eski Then IzinGunu = 18 Else IzinGunu = 20
    If izinyili >= 15 Then If Eski Then IzinGunu = 24 Else IzinGunu = 26
    If YasHesapla Then
        If Yas < 18 Or Yas > 50 And IzinGunu < 20 Then IzinGunu = 20
    End If
End Function
 

denese

Altın Üye
Katılım
17 Mart 2011
Mesajlar
432
Excel Vers. ve Dili
Office 2019
Altın Üyelik Bitiş Tarihi
02-03-2026
Alternatif

KOD:
Kod:
Function hakedis(isegiristarihi, dogumtarihi, kontrol_yili, gunun_tarihi)

If isegiristarihi = "" Then
hakedis = ""
Exit Function
ElseIf dogumtarihi = "" Then
hakedis = ""
Exit Function
ElseIf kontrol_yili = "" Then
hakedis = ""
Exit Function
ElseIf gunun_tarihi = "" Then
hakedis = ""
Exit Function
End If

zaman_aralıgı = CDate(Format(Format(isegiristarihi, "dd.mm.") & kontrol_yili, "dd.mm.yyyy"))
yer3 = CDate(zaman_aralıgı)
yer = Val((zaman_aralıgı - CDate(isegiristarihi)) * 1) + 1
yer1 = Val(Val(((zaman_aralıgı - CDate(dogumtarihi)) * 1) + 1) / 365.25)

If yer >= 365.25 Then
zaman_aralıgı = Val((yer / 365.25))
Else
zaman_aralıgı = 0
End If

If gunun_tarihi > yer3 Then
If isegiristarihi > 0 Then

If zaman_aralıgı <= 0 Then
hakedis = 0
ElseIf zaman_aralıgı >= 1 And zaman_aralıgı <= 5 Then
hakedis = [COLOR="Red"]16[/COLOR]
ElseIf zaman_aralıgı >= 6 And zaman_aralıgı <= 14 Then
hakedis = [COLOR="red"]23[/COLOR]
ElseIf zaman_aralıgı >= 15 And zaman_aralıgı <= 65 Then
hakedis = [COLOR="red"]30[/COLOR]
End If

If zaman_aralıgı > 0 Then
If hakedis <= [COLOR="red"]16 [/COLOR]Then
If yer1 <= 18 Then
hakedis = [COLOR="red"]23[/COLOR]
ElseIf yer1 >= 50 Then
hakedis = [COLOR="red"]23[/COLOR]
End If
End If
End If
End If

Else
hakedis = ""
End If

End Function
Merhaba Sayın halit3

Bu koda bir koşul ekleyerek ekteki tabloya uyarlamak istiyorum. Detayı tabloda belirttim. Yardımcı olabilirseniz minnettar kalırım.

Hayırlı geceler
 

Ekli dosyalar

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,760
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
kod:

PHP:
'Function hakedis(isebaslamatarihi, dogumtarihi, calisilansure, tarih)

Function hakedis(isegiristarihi, dogumtarihi, kontrol_yili, gunun_tarihi, kadro)

If isegiristarihi = "" Then
hakedis = ""
Exit Function
ElseIf dogumtarihi = "" Then
hakedis = ""
Exit Function
ElseIf kontrol_yili = "" Then
hakedis = ""
Exit Function
ElseIf gunun_tarihi = "" Then
hakedis = ""
Exit Function
End If

zaman_aralıgı = CDate(Format(Format(isegiristarihi, "dd.mm.") & kontrol_yili, "dd.mm.yyyy"))
yer3 = CDate(zaman_aralıgı)
yer = Val((zaman_aralıgı - CDate(isegiristarihi)) * 1) + 1
yer1 = Val(Val(((zaman_aralıgı - CDate(dogumtarihi)) * 1) + 1) / 365.25)

If yer >= 365.25 Then
zaman_aralıgı = Val((yer / 365.25))
Else
zaman_aralıgı = 0
End If

If gunun_tarihi > yer3 Then
If isegiristarihi > 0 Then

If kadro = 1 Then

If zaman_aralıgı <= 0 Then
hakedis = 0
ElseIf zaman_aralıgı >= 1 And zaman_aralıgı <= 5 Then
hakedis = 15
ElseIf zaman_aralıgı >= 6 And zaman_aralıgı <= 14 Then
hakedis = 21
ElseIf zaman_aralıgı >= 15 And zaman_aralıgı <= 65 Then
hakedis = 27
End If
Else

If zaman_aralıgı <= 0 Then
hakedis = 0
ElseIf zaman_aralıgı >= 1 And zaman_aralıgı <= 5 Then
hakedis = 14
ElseIf zaman_aralıgı >= 6 And zaman_aralıgı <= 14 Then
hakedis = 20
ElseIf zaman_aralıgı >= 15 And zaman_aralıgı <= 65 Then
hakedis = 26
End If

End If



If zaman_aralıgı > 0 Then
If hakedis <= 14 Then
If yer1 <= 18 Then
hakedis = 20
ElseIf yer1 >= 50 Then
hakedis = 20
End If
End If
End If
End If

Else
hakedis = ""
End If

End Function
 

denese

Altın Üye
Katılım
17 Mart 2011
Mesajlar
432
Excel Vers. ve Dili
Office 2019
Altın Üyelik Bitiş Tarihi
02-03-2026
Hocam zaman ayırdığınız için çok teşekkür ederim. Kodu tabloya uyarladım fakat kadro kriterini baz almıyor, tüm çalışanlara sırasıyla 14, 20, 26 izin hakkedişi uyguluyor. Dosya ekte yer alıyor. Yardımcı olabilir misiniz.
 

Ekli dosyalar

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,760
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Formül böyle olmalı

Kod:
=hakedis($G2;$E2;M$1;BUGÜN();$D2)
Rich (BB code):
Function hakedis(isegiristarihi, dogumtarihi, kontrol_yili, gunun_tarihi, kadro)

If isegiristarihi = "" Then
hakedis = ""
Exit Function
ElseIf dogumtarihi = "" Then
hakedis = ""
Exit Function
ElseIf kontrol_yili = "" Then
hakedis = ""
Exit Function
ElseIf gunun_tarihi = "" Then
hakedis = ""
Exit Function
End If

zaman_aralıgı = CDate(Format(Format(isegiristarihi, "dd.mm.") & kontrol_yili, "dd.mm.yyyy"))
yer3 = CDate(zaman_aralıgı)
yer = Val((zaman_aralıgı - CDate(isegiristarihi)) * 1) + 1
yer1 = Val(Val(((zaman_aralıgı - CDate(dogumtarihi)) * 1) + 1) / 365.25)

If yer >= 365.25 Then
zaman_aralıgı = Val((yer / 365.25))
Else
zaman_aralıgı = 0
End If

If gunun_tarihi > yer3 Then
If isegiristarihi > 0 Then

If Val(kadro) = 1 Then
If zaman_aralıgı <= 0 Then
hakedis = 0
ElseIf zaman_aralıgı >= 1 And zaman_aralıgı <= 5 Then
hakedis = 15
ElseIf zaman_aralıgı >= 6 And zaman_aralıgı <= 14 Then
hakedis = 21
ElseIf zaman_aralıgı >= 15 And zaman_aralıgı <= 65 Then
hakedis = 27
End If
Else

If zaman_aralıgı <= 0 Then
hakedis = 0
ElseIf zaman_aralıgı >= 1 And zaman_aralıgı <= 5 Then
hakedis = 14
ElseIf zaman_aralıgı >= 6 And zaman_aralıgı <= 14 Then
hakedis = 20
ElseIf zaman_aralıgı >= 15 And zaman_aralıgı <= 65 Then
hakedis = 26
End If

End If



If zaman_aralıgı > 0 Then
If hakedis <= 14 Then
If yer1 <= 18 Then
hakedis = 20
ElseIf yer1 >= 50 Then
hakedis = 20
End If
End If
End If
End If

Else
hakedis = ""
End If

End Function
 

denese

Altın Üye
Katılım
17 Mart 2011
Mesajlar
432
Excel Vers. ve Dili
Office 2019
Altın Üyelik Bitiş Tarihi
02-03-2026
Formül böyle olmalı

Kod:
=hakedis($G2;$E2;M$1;BUGÜN();$D2)
Rich (BB code):
Function hakedis(isegiristarihi, dogumtarihi, kontrol_yili, gunun_tarihi, kadro)

If isegiristarihi = "" Then
hakedis = ""
Exit Function
ElseIf dogumtarihi = "" Then
hakedis = ""
Exit Function
ElseIf kontrol_yili = "" Then
hakedis = ""
Exit Function
ElseIf gunun_tarihi = "" Then
hakedis = ""
Exit Function
End If

zaman_aralıgı = CDate(Format(Format(isegiristarihi, "dd.mm.") & kontrol_yili, "dd.mm.yyyy"))
yer3 = CDate(zaman_aralıgı)
yer = Val((zaman_aralıgı - CDate(isegiristarihi)) * 1) + 1
yer1 = Val(Val(((zaman_aralıgı - CDate(dogumtarihi)) * 1) + 1) / 365.25)

If yer >= 365.25 Then
zaman_aralıgı = Val((yer / 365.25))
Else
zaman_aralıgı = 0
End If

If gunun_tarihi > yer3 Then
If isegiristarihi > 0 Then

If Val(kadro) = 1 Then
If zaman_aralıgı <= 0 Then
hakedis = 0
ElseIf zaman_aralıgı >= 1 And zaman_aralıgı <= 5 Then
hakedis = 15
ElseIf zaman_aralıgı >= 6 And zaman_aralıgı <= 14 Then
hakedis = 21
ElseIf zaman_aralıgı >= 15 And zaman_aralıgı <= 65 Then
hakedis = 27
End If
Else

If zaman_aralıgı <= 0 Then
hakedis = 0
ElseIf zaman_aralıgı >= 1 And zaman_aralıgı <= 5 Then
hakedis = 14
ElseIf zaman_aralıgı >= 6 And zaman_aralıgı <= 14 Then
hakedis = 20
ElseIf zaman_aralıgı >= 15 And zaman_aralıgı <= 65 Then
hakedis = 26
End If

End If



If zaman_aralıgı > 0 Then
If hakedis <= 14 Then
If yer1 <= 18 Then
hakedis = 20
ElseIf yer1 >= 50 Then
hakedis = 20
End If
End If
End If
End If

Else
hakedis = ""
End If

End Function
Hocam çok teşekkür ediyorum. Forumdaki çalışmalarınızdan bir çok kez faydalandım. Hakkınız çok büyük.

Saygılar
 

denese

Altın Üye
Katılım
17 Mart 2011
Mesajlar
432
Excel Vers. ve Dili
Office 2019
Altın Üyelik Bitiş Tarihi
02-03-2026
Formül böyle olmalı

Kod:
=hakedis($G2;$E2;M$1;BUGÜN();$D2)
Rich (BB code):
Function hakedis(isegiristarihi, dogumtarihi, kontrol_yili, gunun_tarihi, kadro)

If isegiristarihi = "" Then
hakedis = ""
Exit Function
ElseIf dogumtarihi = "" Then
hakedis = ""
Exit Function
ElseIf kontrol_yili = "" Then
hakedis = ""
Exit Function
ElseIf gunun_tarihi = "" Then
hakedis = ""
Exit Function
End If

zaman_aralıgı = CDate(Format(Format(isegiristarihi, "dd.mm.") & kontrol_yili, "dd.mm.yyyy"))
yer3 = CDate(zaman_aralıgı)
yer = Val((zaman_aralıgı - CDate(isegiristarihi)) * 1) + 1
yer1 = Val(Val(((zaman_aralıgı - CDate(dogumtarihi)) * 1) + 1) / 365.25)

If yer >= 365.25 Then
zaman_aralıgı = Val((yer / 365.25))
Else
zaman_aralıgı = 0
End If

If gunun_tarihi > yer3 Then
If isegiristarihi > 0 Then

If Val(kadro) = 1 Then
If zaman_aralıgı <= 0 Then
hakedis = 0
ElseIf zaman_aralıgı >= 1 And zaman_aralıgı <= 5 Then
hakedis = 15
ElseIf zaman_aralıgı >= 6 And zaman_aralıgı <= 14 Then
hakedis = 21
ElseIf zaman_aralıgı >= 15 And zaman_aralıgı <= 65 Then
hakedis = 27
End If
Else

If zaman_aralıgı <= 0 Then
hakedis = 0
ElseIf zaman_aralıgı >= 1 And zaman_aralıgı <= 5 Then
hakedis = 14
ElseIf zaman_aralıgı >= 6 And zaman_aralıgı <= 14 Then
hakedis = 20
ElseIf zaman_aralıgı >= 15 And zaman_aralıgı <= 65 Then
hakedis = 26
End If

End If



If zaman_aralıgı > 0 Then
If hakedis <= 14 Then
If yer1 <= 18 Then
hakedis = 20
ElseIf yer1 >= 50 Then
hakedis = 20
End If
End If
End If
End If

Else
hakedis = ""
End If

End Function
Hocam kusura bakmayın. İşten çıkış tarihi, izin hakkediş tarihinden önce olan kişilerde, ilgili yıl için hakkediş uyguluyor. Dosya ekte yer alıyor, tekrar yardımcı olabilir misiniz.
 

Ekli dosyalar

Son düzenleme:

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,760
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Formülün içine girin günün tarihi bölümüne H sutununu yapın
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,760
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Gösterdiğiniz hücredeki formülün kontrol yılı yanlış M1 gözüküyor Oysa Q1 olması lazım.
 

denese

Altın Üye
Katılım
17 Mart 2011
Mesajlar
432
Excel Vers. ve Dili
Office 2019
Altın Üyelik Bitiş Tarihi
02-03-2026
Gösterdiğiniz hücredeki formülün kontrol yılı yanlış M1 gözüküyor Oysa Q1 olması lazım.
Hocam ben mi yanlış bakıyorum bilemedim, sarı ile işaretlediğim hücredeki kontrol yılını "Q1" olarak görüyorum. Formülün içine girip günün tarihi bölümüne H sutununu yapamadım:(
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,760
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
PHP:
Function hakedis(isegiristarihi, dogumtarihi, kontrol_yili, gunun_tarihi, istençıkıstarihi, kadro)

If isegiristarihi = "" Then
hakedis = ""
Exit Function
ElseIf dogumtarihi = "" Then
hakedis = ""
Exit Function
ElseIf kontrol_yili = "" Then
hakedis = ""
Exit Function
ElseIf gunun_tarihi = "" Then
hakedis = ""
Exit Function
End If


zaman_aralıgı = CDate(Format(Format(isegiristarihi, "dd.mm.") & kontrol_yili, "dd.mm.yyyy"))
zaman_aralıgı2 = CDate(Format(Format(isegiristarihi, "dd.mm.") & kontrol_yili, "dd.mm.yyyy"))


yer3 = CDate(zaman_aralıgı)
yer = Val((zaman_aralıgı - CDate(isegiristarihi)) * 1) + 1
yer1 = Val(Val(((zaman_aralıgı - CDate(dogumtarihi)) * 1) + 1) / 365.25)

If yer >= 365.25 Then
zaman_aralıgı = Val((yer / 365.25))
Else
zaman_aralıgı = 0
End If

If gunun_tarihi > yer3 Then
If isegiristarihi > 0 Then




If Val(kadro) = 1 Then
If zaman_aralıgı <= 0 Then
hakedis = 0
ElseIf zaman_aralıgı >= 1 And zaman_aralıgı <= 5 Then
hakedis = 15
ElseIf zaman_aralıgı >= 6 And zaman_aralıgı <= 14 Then
hakedis = 21
ElseIf zaman_aralıgı >= 15 And zaman_aralıgı <= 65 Then
hakedis = 27
End If
Else

If zaman_aralıgı <= 0 Then
hakedis = 0
ElseIf zaman_aralıgı >= 1 And zaman_aralıgı <= 5 Then
hakedis = 14
ElseIf zaman_aralıgı >= 6 And zaman_aralıgı <= 14 Then
hakedis = 20
ElseIf zaman_aralıgı >= 15 And zaman_aralıgı <= 65 Then
hakedis = 26
End If

End If




If zaman_aralıgı > 0 Then
If hakedis <= 14 Then
If yer1 <= 18 Then
hakedis = 20
ElseIf yer1 >= 50 Then
hakedis = 20
End If
End If
End If

End If

Else
hakedis = ""
End If



If CDate(istençıkıstarihi) <> "00:00:00" Then
If CDate(istençıkıstarihi) > CDate(zaman_aralıgı2) Then
hakedis = hakedis
Else
hakedis = ""
End If
End If


End Function
M2 hücresindeki formül de böyle olacak
Kod:
=hakedis($G2;$E2;M$1;BUGÜN();$H2;$D2)
 

denese

Altın Üye
Katılım
17 Mart 2011
Mesajlar
432
Excel Vers. ve Dili
Office 2019
Altın Üyelik Bitiş Tarihi
02-03-2026
PHP:
Function hakedis(isegiristarihi, dogumtarihi, kontrol_yili, gunun_tarihi, istençıkıstarihi, kadro)

If isegiristarihi = "" Then
hakedis = ""
Exit Function
ElseIf dogumtarihi = "" Then
hakedis = ""
Exit Function
ElseIf kontrol_yili = "" Then
hakedis = ""
Exit Function
ElseIf gunun_tarihi = "" Then
hakedis = ""
Exit Function
End If


zaman_aralıgı = CDate(Format(Format(isegiristarihi, "dd.mm.") & kontrol_yili, "dd.mm.yyyy"))
zaman_aralıgı2 = CDate(Format(Format(isegiristarihi, "dd.mm.") & kontrol_yili, "dd.mm.yyyy"))


yer3 = CDate(zaman_aralıgı)
yer = Val((zaman_aralıgı - CDate(isegiristarihi)) * 1) + 1
yer1 = Val(Val(((zaman_aralıgı - CDate(dogumtarihi)) * 1) + 1) / 365.25)

If yer >= 365.25 Then
zaman_aralıgı = Val((yer / 365.25))
Else
zaman_aralıgı = 0
End If

If gunun_tarihi > yer3 Then
If isegiristarihi > 0 Then




If Val(kadro) = 1 Then
If zaman_aralıgı <= 0 Then
hakedis = 0
ElseIf zaman_aralıgı >= 1 And zaman_aralıgı <= 5 Then
hakedis = 15
ElseIf zaman_aralıgı >= 6 And zaman_aralıgı <= 14 Then
hakedis = 21
ElseIf zaman_aralıgı >= 15 And zaman_aralıgı <= 65 Then
hakedis = 27
End If
Else

If zaman_aralıgı <= 0 Then
hakedis = 0
ElseIf zaman_aralıgı >= 1 And zaman_aralıgı <= 5 Then
hakedis = 14
ElseIf zaman_aralıgı >= 6 And zaman_aralıgı <= 14 Then
hakedis = 20
ElseIf zaman_aralıgı >= 15 And zaman_aralıgı <= 65 Then
hakedis = 26
End If

End If




If zaman_aralıgı > 0 Then
If hakedis <= 14 Then
If yer1 <= 18 Then
hakedis = 20
ElseIf yer1 >= 50 Then
hakedis = 20
End If
End If
End If

End If

Else
hakedis = ""
End If



If CDate(istençıkıstarihi) <> "00:00:00" Then
If CDate(istençıkıstarihi) > CDate(zaman_aralıgı2) Then
hakedis = hakedis
Else
hakedis = ""
End If
End If


End Function
M2 hücresindeki formül de böyle olacak
Kod:
=hakedis($G2;$E2;M$1;BUGÜN();$H2;$D2)
Sizin bu iyiliğiniz, benim nazarımda o kadar kıymetli ki, karşılığını bizzat vermekten aciz kalıyorum, Allah razı olsun..
 

denese

Altın Üye
Katılım
17 Mart 2011
Mesajlar
432
Excel Vers. ve Dili
Office 2019
Altın Üyelik Bitiş Tarihi
02-03-2026
PHP:
Function hakedis(isegiristarihi, dogumtarihi, kontrol_yili, gunun_tarihi, istençıkıstarihi, kadro)

If isegiristarihi = "" Then
hakedis = ""
Exit Function
ElseIf dogumtarihi = "" Then
hakedis = ""
Exit Function
ElseIf kontrol_yili = "" Then
hakedis = ""
Exit Function
ElseIf gunun_tarihi = "" Then
hakedis = ""
Exit Function
End If


zaman_aralıgı = CDate(Format(Format(isegiristarihi, "dd.mm.") & kontrol_yili, "dd.mm.yyyy"))
zaman_aralıgı2 = CDate(Format(Format(isegiristarihi, "dd.mm.") & kontrol_yili, "dd.mm.yyyy"))


yer3 = CDate(zaman_aralıgı)
yer = Val((zaman_aralıgı - CDate(isegiristarihi)) * 1) + 1
yer1 = Val(Val(((zaman_aralıgı - CDate(dogumtarihi)) * 1) + 1) / 365.25)

If yer >= 365.25 Then
zaman_aralıgı = Val((yer / 365.25))
Else
zaman_aralıgı = 0
End If

If gunun_tarihi > yer3 Then
If isegiristarihi > 0 Then




If Val(kadro) = 1 Then
If zaman_aralıgı <= 0 Then
hakedis = 0
ElseIf zaman_aralıgı >= 1 And zaman_aralıgı <= 5 Then
hakedis = 15
ElseIf zaman_aralıgı >= 6 And zaman_aralıgı <= 14 Then
hakedis = 21
ElseIf zaman_aralıgı >= 15 And zaman_aralıgı <= 65 Then
hakedis = 27
End If
Else

If zaman_aralıgı <= 0 Then
hakedis = 0
ElseIf zaman_aralıgı >= 1 And zaman_aralıgı <= 5 Then
hakedis = 14
ElseIf zaman_aralıgı >= 6 And zaman_aralıgı <= 14 Then
hakedis = 20
ElseIf zaman_aralıgı >= 15 And zaman_aralıgı <= 65 Then
hakedis = 26
End If

End If




If zaman_aralıgı > 0 Then
If hakedis <= 14 Then
If yer1 <= 18 Then
hakedis = 20
ElseIf yer1 >= 50 Then
hakedis = 20
End If
End If
End If

End If

Else
hakedis = ""
End If



If CDate(istençıkıstarihi) <> "00:00:00" Then
If CDate(istençıkıstarihi) > CDate(zaman_aralıgı2) Then
hakedis = hakedis
Else
hakedis = ""
End If
End If


End Function
M2 hücresindeki formül de böyle olacak
Kod:
=hakedis($G2;$E2;M$1;BUGÜN();$H2;$D2)
Sayın halit3 merhaba,

Bu konuda yine değerli desteğinize ihtiyaç duyuyorum. Ekteki excel dosyasındaki kullanıcı tanımlı fonksiyonda sabit olarak tanımlanan kıdem yılı başlangıç/bitiş tarihlerini ve izin hakediş günlerini, "Parametre" sayfasından alacak şekilde değişken yapmak istiyorum. Detayları ekteki dosyada belirttim. Tekrar yardımcı olabilir misiniz.
 

Ekli dosyalar

Üst