• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

yıllık izin hakediş

ckarabacak

Altın Üye
Katılım
12 Ocak 2010
Mesajlar
369
Excel Vers. ve Dili
Excel 2010
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

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
 
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
 
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.
 
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

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
 
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
 
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

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
 
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

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
 
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
 
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:
Formülün içine girin günün tarihi bölümüne H sutununu yapın
 
Gösterdiğiniz hücredeki formülün kontrol yılı yanlış M1 gözüküyor Oysa Q1 olması lazım.
 
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:(
 
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)
 
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..
 
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

Geri
Üst