ckarabacak
Altın Üye
- Katılım
- 12 Ocak 2010
- Mesajlar
- 369
- Excel Vers. ve Dili
- Excel 2010
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
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
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
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
Merhaba Sayın halit3Alternatif
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
'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
=hakedis($G2;$E2;M$1;BUGÜN();$D2)
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.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.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 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ımGösterdiğiniz hücredeki formülün kontrol yılı yanlış M1 gözüküyor Oysa Q1 olması lazım.
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
=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..M2 hücresindeki formül de böyle olacakPHP: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
Kod:=hakedis($G2;$E2;M$1;BUGÜN();$H2;$D2)
Sayın halit3 merhaba,M2 hücresindeki formül de böyle olacakPHP: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
Kod:=hakedis($G2;$E2;M$1;BUGÜN();$H2;$D2)