DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Selam,Arkadaşlar..! (Herkese iyi çalışmalar)
Konu; ekli örnek dosyada daha kolay anlaşılacak.. Harcırah (Yolluk) ornan hesaplamasına ait bir formül üzerinde uğraştım.. Bir yerde takıldım. Bir el atabilirseniz çok memnun olurum..
Arkadaşlar; Ek dosyadaki bu oranları hesaplarken çıkış ve dönüş saatlerini ss:dd şeklinde yaptığımızda formül hatalı diyor.Bunu düzeltmenin bir yolu varmı?
Teşekkürler.
Bu konuda arkadaşların yardımını bekliyorum.
(Bahsettiğim dosya; ekrem1661 arkadaşımızın eklediği dosyadır.)
Teşekkürler.
Function harcirah_hesapla(tarih, cikis_saat, donus_saat)
cikis_saat = WorksheetFunction.Round(cikis_saat, 2)
donus_saat = WorksheetFunction.Round(donus_saat, 2)
If tarih = "" Then Exit Function
If cikis_saat = "" And donus_saat = "" Then
harcirah_hesapla = "1"
ElseIf donus_saat > cikis_saat Then
If donus_saat >= 12 And donus_saat < 19 Then
harcirah_hesapla = "1/3"
ElseIf cikis_saat = 0 And donus_saat > 0 Then
harcirah_hesapla = "1"
ElseIf cikis_saat > 12 And donus_saat < 24 Then
harcirah_hesapla = "1/3"
ElseIf cikis_saat < 12 And donus_saat > 19 Then
harcirah_hesapla = "2/3"
End If
ElseIf cikis_saat > 0 And donus_saat = 0 Then
harcirah_hesapla = "1"
End If
End Function
=harcirah_hesapla(B11;F11;G11)
Function harcirah_hesapla(tarih, cikis_saat, donus_saat)
'If tarih = "" Then Exit Function
tarih = WorksheetFunction.Round(tarih, 2)
cikis_saat = WorksheetFunction.Round(cikis_saat, 2)
donus_saat = WorksheetFunction.Round(donus_saat, 2)
If tarih = 0 Then
harcirah_hesapla = ""
ElseIf cikis_saat = 0 And donus_saat = 0 Then
harcirah_hesapla = ""
ElseIf cikis_saat > 0 And donus_saat = 0 Then
harcirah_hesapla = "1"
ElseIf cikis_saat = 0 And donus_saat > 0 Then
harcirah_hesapla = "1"
ElseIf cikis_saat < 5 And donus_saat <= 12 Then
harcirah_hesapla = "1/3"
ElseIf cikis_saat <= 12 And donus_saat <= 12 Then
harcirah_hesapla = "1/3"
ElseIf cikis_saat <= 12 And donus_saat <= 19 Then
harcirah_hesapla = "1/3"
ElseIf cikis_saat <= 12 And donus_saat > 19 Then
harcirah_hesapla = "2/3"
ElseIf cikis_saat <= 12 And donus_saat <= 24 Then
harcirah_hesapla = "2/3"
ElseIf cikis_saat > 12 And donus_saat <= 19 Then
harcirah_hesapla = "1/3"
ElseIf cikis_saat > 12 And donus_saat <= 24 Then
harcirah_hesapla = "1/3"
ElseIf cikis_saat >= 19 And donus_saat <= 24 Then
harcirah_hesapla = "1/3"
ElseIf cikis_saat >= 19 And donus_saat > 24 Then
harcirah_hesapla = "2/3"
End If
End Function
Function harcirah_hesapla(tarih, cikis_saat, donus_saat)
tarih = WorksheetFunction.Round(tarih, 2)
cikis_saat = WorksheetFunction.Round(cikis_saat, 2)
donus_saat = WorksheetFunction.Round(donus_saat, 2)
If tarih = 0 Then
harcirah_hesapla = ""
ElseIf cikis_saat = 0 And donus_saat = 0 Then
harcirah_hesapla = ""
ElseIf cikis_saat > 0 And donus_saat = 0 Then
harcirah_hesapla = "1"
ElseIf cikis_saat = 0 And donus_saat > 0 Then
harcirah_hesapla = "1"
ElseIf cikis_saat > 1 And cikis_saat <= 12 Then
If donus_saat >= 12 And donus_saat <= 19 Then
harcirah_hesapla = "1/3"
ElseIf donus_saat >= 19 And donus_saat <= 24 Then
harcirah_hesapla = "2/3"
End If
ElseIf cikis_saat > 12 And cikis_saat <= 19 Then
If donus_saat >= 19 And donus_saat <= 24 Then
harcirah_hesapla = "1/3"
ElseIf donus_saat > 24 Then
harcirah_hesapla = "2/3"
End If
End If
End Function
Halit bey çok teşekkürler, Emeklerinize sağlık.
Halit bey Elinize sağlık, Peki buna birde gidiş tarihinden sonra dönüş tarihi ilave etsek ve kodları ona göre revize etsek bir günden fazla olan günleride yazdırma şansımız olurmu?
Çok Teşekkürler.
Halit bey Elinize sağlık, Peki buna birde gidiş tarihinden sonra dönüş tarihi ilave etsek ve kodları ona göre revize etsek bir günden fazla olan günleride yazdırma şansımız olurmu?
Çok Teşekkürler.
Function harcirah_hesapla(gid_tarih, gel_tarih, cikis_saat, donus_saat)
If IsDate(gid_tarih) = False Then harcirah_hesapla = "": Exit Function
If IsDate(gel_tarih) = False Then harcirah_hesapla = "": Exit Function
If CDate(gel_tarih) > CDate(gid_tarih) Then
harcirah_hesapla = Val(CDate(gel_tarih) - CDate(gid_tarih))
Exit Function
End If
cikis_saat = WorksheetFunction.Round(cikis_saat, 2)
donus_saat = WorksheetFunction.Round(donus_saat, 2)
If cikis_saat = 0 And donus_saat = 0 Then
harcirah_hesapla = ""
ElseIf cikis_saat > 0 And donus_saat = 0 Then
harcirah_hesapla = "1"
ElseIf cikis_saat = 0 And donus_saat > 0 Then
harcirah_hesapla = "1"
ElseIf cikis_saat > 1 And cikis_saat <= 12 Then
If donus_saat >= 12 And donus_saat <= 19 Then
harcirah_hesapla = "1/3"
ElseIf donus_saat >= 19 And donus_saat <= 24 Then
harcirah_hesapla = "2/3"
End If
ElseIf cikis_saat > 12 And cikis_saat <= 19 Then
If donus_saat >= 19 And donus_saat <= 24 Then
harcirah_hesapla = "1/3"
ElseIf donus_saat > 24 Then
harcirah_hesapla = "2/3"
End If
End If
End Function
Halit bey emekleriniz için çok teşekkürler, bugün saat 19'da giden biri ertesi gün saat 12, den önceki bir saatte dönmüşse 2/3 oranında olması gerekmezmi? o yönüyle kodları bir daha incelermisiniz?
Teşekkürler.
Teşekkürler Halit bey, bir günden fazla seyahat edenlerde doğrudur, burada zor olan ise bir çok ihtimali bulunan bir günden az olan süreler için aşağıdaki maddeye uyarlamak. Bunu yapabildiğimizde çok büyük bir işi halletmiş olacağız.
Teşekkürler.
Madde 39 – (Değişik: 11/12/1981 - 2562/16 md.)
Resmi bir görevle memuriyet mahalli içinde bir yere gönderilenlere gündelik verilmez. Geçici bir görevle memuriyet mahalli dışındaki bir yere gönderilenlerden, buralarda ve yolda öğle (saat 13.00) ve akşam (saat 19.00) yemeği zamanlarından birini geçirenlere 1/3, ikisini geçirenlere 2/3 oranında ve geceyi de geçirenlere tam gündelik verilir.
Halit bey, gidiş dönüş saatlerini 13,30 şeklinde yazdığımızda sonuca ulaşıyoruz. Hücre biçimlendirmeden saat fatmatından 13:30 şeklinde seçtiğimizde sonuç değişiyor. Kodlarda saat biçimini 13:30 şeklinde yazmamıza olanak sağlayacak şekilde uyarlayabilirmisiniz.
Teşekkürler.
Halit bey, gidiş dönüş saatlerini 13,30 şeklinde yazdığımızda sonuca ulaşıyoruz. Hücre biçimlendirmeden saat fatmatından 13:30 şeklinde seçtiğimizde sonuç değişiyor. Kodlarda saat biçimini 13:30 şeklinde yazmamıza olanak sağlayacak şekilde uyarlayabilirmisiniz.
Teşekkürler.
Function harcirah_hesapla(tarih, cikis_saat, donus_saat)
If IsDate(tarih) = False Then harcirah_hesapla = "": Exit Function
cikis_saat = CDate(cikis_saat)
donus_saat = CDate(donus_saat)
If cikis_saat = "00:00:00" And donus_saat = "00:00:00" Then
harcirah_hesapla = ""
ElseIf cikis_saat > "00:00:00" And donus_saat = "00:00:00" Then
harcirah_hesapla = "1"
ElseIf cikis_saat = "00:00:00" And donus_saat > "00:00:00" Then
harcirah_hesapla = "1"
ElseIf cikis_saat < "05:00:00" And donus_saat <= "13:00:00" Then
MsgBox CDate(donus_saat)
harcirah_hesapla = "1/3"
ElseIf cikis_saat <= "12:00:00" And donus_saat <= "13:00:00" Then
harcirah_hesapla = "1/3"
ElseIf cikis_saat <= "12:00:00" And donus_saat <= "19:00:00" Then
MsgBox CDate(donus_saat)
harcirah_hesapla = "1/3"
ElseIf cikis_saat <= "12:00:00" And donus_saat > "19:00:00" Then
harcirah_hesapla = "2/3"
ElseIf cikis_saat <= "12:00:00" And donus_saat <= "24:00:00" Then
harcirah_hesapla = "2/3"
ElseIf cikis_saat > "12:00:00" And donus_saat <= "19:00:00" Then
harcirah_hesapla = "1/3"
ElseIf cikis_saat > "12:00:00" And donus_saat <= "24:00:00" Then
harcirah_hesapla = "1/3"
ElseIf cikis_saat >= "19:00:00" And donus_saat <= "24:00:00" Then
harcirah_hesapla = "1/3"
ElseIf cikis_saat >= "19:00:00" And donus_saat > "24:00:00" Then
harcirah_hesapla = "2/3"
End If
End Function