DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Formülü ekteki dosyaya göre sarı bölümleri nasıl düzenleriz..
Function harcirah_hesapla(cikis_tarih, cikis_saat, donus_tarih, donus_saat)
If IsDate(cikis_tarih) = False Then harcirah_hesapla = "": Exit Function
If IsDate(donus_tarih) = False Then harcirah_hesapla = "": Exit Function
If cikis_saat = "" Then harcirah_hesapla = "": Exit Function
If donus_saat = "" Then harcirah_hesapla = "": Exit Function
cikis_saat = Format(cikis_saat, "hh") * 60 + Format(cikis_saat, "nn") * 1
donus_saat = Format(donus_saat, "hh") * 60 + Format(donus_saat, "nn") * 1
If cikis_saat <= 0 Then harcirah_hesapla = "": Exit Function
If donus_saat <= 0 Then harcirah_hesapla = "": Exit Function
'MsgBox Mid(cikis_saat, 1, 2)
'MsgBox Format(donus_saat, "hh") * 60
'MsgBox Format(donus_saat, "nn") * 1
'MsgBox cikis_saat & Chr(10) & donus_saat
'05:00 300
'12:00 720
'13:00 780
'19:00 1140
'23:59 1380
'24:00 0
If cikis_tarih = donus_tarih Then
If cikis_saat <= 780 And donus_saat >= 780 And donus_saat > 1140 Then
harcirah_hesapla = "2/3"
ElseIf cikis_saat < 780 And donus_saat > 780 Then
harcirah_hesapla = "1/3"
ElseIf cikis_saat > 780 And donus_saat > 1140 Then
harcirah_hesapla = "1/3"
Else
harcirah_hesapla = ""
End If
ElseIf cikis_tarih < donus_tarih Then
harcirah_hesapla = donus_tarih - cikis_tarih
Else
harcirah_hesapla = ""
End If
End Function
=harcirah_hesapla(C3;D3;F3;G3)
Function harcirah_hesapla2(cikis_tarih, cikis_saat, donus_tarih, donus_saat)
If IsDate(cikis_tarih) = False Then harcirah_hesapla2 = "": Exit Function
If IsDate(donus_tarih) = False Then harcirah_hesapla2 = "": Exit Function
If cikis_saat = "" Then harcirah_hesapla2 = "": Exit Function
If donus_saat = "" Then harcirah_hesapla2 = "": Exit Function
'virgül formatlı bölüm (13,15) gibi
'-------------------------------------------
deg1 = Split(cikis_saat, ",")
If UBound(deg1) > 0 Then
cikis_saat = (deg1(0) * 60) + (deg1(1) * 1)
Else
cikis_saat = (cikis_saat * 60)
End If
deg2 = Split(donus_saat, ",")
If UBound(deg2) > 0 Then
donus_saat = (deg2(0) * 60) + (deg2(1) * 1)
Else
donus_saat = (donus_saat * 60)
End If
'------------------------------------------
'saat formatlı bölüm (13:15) gibi
'-------------------------------------------------------------------------
'cikis_saat = Format(cikis_saat, "hh") * 60 + Format(cikis_saat, "nn") * 1
'donus_saat = Format(donus_saat, "hh") * 60 + Format(donus_saat, "nn") * 1
'-------------------------------------------------------------------------
If cikis_saat <= 0 Then harcirah_hesapla2 = "": Exit Function
If donus_saat <= 0 Then harcirah_hesapla2 = "": Exit Function
If cikis_tarih = donus_tarih Then
If cikis_saat <= 780 And donus_saat >= 780 And donus_saat > 1140 Then
harcirah_hesapla2 = "2/3"
ElseIf cikis_saat < 780 And donus_saat > 780 Then
harcirah_hesapla2 = "1/3"
ElseIf cikis_saat > 780 And donus_saat > 1140 Then
harcirah_hesapla2 = "1/3"
Else
harcirah_hesapla2 = ""
End If
ElseIf cikis_tarih < donus_tarih Then
harcirah_hesapla2 = donus_tarih - cikis_tarih * 1
Else
harcirah_hesapla2 = ""
End If
End Function
Hocam formülünüzü uyarlamaya çalıştım ancak sanırım birşeyler hatalı inceleyebilirmisiniz ?
halit3 Hocamın kodları ile düzeltilmiştir. (biraz oynama yaptım kusura bakmayın)
Aynı tarihte saat: 13.00 ü aşarsa 1/3
Aynı tarihte saat: 19.00u aşarsa 2/3
tarih değişikliğinde ise gün farkı *1 gün olarak düzenlendi.
Function harcirah_hesapla3(cikis_tarih, cikis_saat, donus_tarih, donus_saat)
If IsDate(cikis_tarih) = False Then harcirah_hesapla3 = "": Exit Function
If IsDate(donus_tarih) = False Then harcirah_hesapla3 = "": Exit Function
If cikis_saat = "" Then harcirah_hesapla3 = "": Exit Function
If donus_saat = "" Then harcirah_hesapla3 = "": Exit Function
If UBound(Split(cikis_saat, ":")) > 0 Then
isaret = ":"
ElseIf UBound(Split(cikis_saat, ",")) > 0 Then
isaret = ","
ElseIf UBound(Split(cikis_saat, " ")) > 0 Then
isaret = " "
Else
isaret = ""
End If
'virgül formatlı bölüm (13,15) gibi
'-------------------------------------------
If isaret = "," Then
deg1 = Split(cikis_saat, ",")
If UBound(deg1) > 0 Then
cikis_saat = (deg1(0) * 60) + (deg1(1) * 1)
Else
cikis_saat = (cikis_saat * 60)
End If
deg2 = Split(donus_saat, ",")
If UBound(deg2) > 0 Then
donus_saat = (deg2(0) * 60) + (deg2(1) * 1)
Else
donus_saat = (donus_saat * 60)
End If
End If
'------------------------------------------
'saat formatlı bölüm (13:15) gibi
'-------------------------------------------------------------------------
If isaret = ":" Then
cikis_saat = Format(cikis_saat, "hh") * 60 + Format(cikis_saat, "nn") * 1
donus_saat = Format(donus_saat, "hh") * 60 + Format(donus_saat, "nn") * 1
End If
'-------------------------------------------------------------------------
If cikis_saat <= 0 Then harcirah_hesapla3 = "": Exit Function
If donus_saat <= 0 Then harcirah_hesapla3 = "": Exit Function
'MsgBox Mid(cikis_saat, 1, 2)
'MsgBox Format(donus_saat, "hh") * 60
'MsgBox Format(donus_saat, "nn") * 1
'MsgBox cikis_saat & Chr(10) & donus_saat
'05:00 300
'12:00 720
'13:00 780
'19:00 1140
'23:59 1380
'24:00 0
If cikis_tarih = donus_tarih Then
If cikis_saat <= 780 And donus_saat >= 780 And donus_saat > 1140 Then
harcirah_hesapla3 = "2/3"
ElseIf cikis_saat < 780 And donus_saat > 780 Then
harcirah_hesapla3 = "1/3"
ElseIf cikis_saat > 780 And donus_saat > 1140 Then
harcirah_hesapla3 = "1/3"
Else
harcirah_hesapla3 = ""
End If
ElseIf cikis_tarih < donus_tarih Then
harcirah_hesapla3 = donus_tarih - cikis_tarih * 1
Else
harcirah_hesapla3 = ""
End If
End Function
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.
Function harcirah_hesapla6(cikis_tarih, cikis_saat, donus_tarih, donus_saat)
If IsDate(cikis_tarih) = False Then harcirah_hesapla6 = "": Exit Function
If IsDate(donus_tarih) = False Then harcirah_hesapla6 = "": Exit Function
If cikis_saat = "" Then harcirah_hesapla6 = "": Exit Function
If donus_saat = "" Then harcirah_hesapla6 = "": Exit Function
If UBound(Split(cikis_saat, ",")) > 0 Then
If Left(cikis_saat, 1) > 0 Then
cikis_saat = Replace(cikis_saat, ",", ":")
End If
End If
If UBound(Split(donus_saat, ",")) > 0 Then
If Left(donus_saat, 1) > 0 Then
donus_saat = Replace(donus_saat, ",", ":")
End If
End If
cikis_saat = Val(Mid(Left(Format(cikis_saat, "0.000000000"), 11), 3, 9))
donus_saat = Val(Mid(Left(Format(donus_saat, "0.000000000"), 11), 3, 9))
If cikis_saat <[COLOR="Red"]=[/COLOR] 0 Then harcirah_hesapla6 = "": Exit Function
If donus_saat <[COLOR="red"]=[/COLOR] 0 Then harcirah_hesapla6 = "": Exit Function
If cikis_tarih = donus_tarih Then
If cikis_saat [COLOR="red"]<[/COLOR] 541666667 And donus_saat [COLOR="red"]>[/COLOR] 541666667 And donus_saat [COLOR="Red"]>[/COLOR] 791666667 Then
harcirah_hesapla6 = "2/3"
ElseIf cikis_saat <[COLOR="red"]=[/COLOR] 541666667 And donus_saat [COLOR="red"]>[/COLOR] 541666667 Then
harcirah_hesapla6 = "1/3"
ElseIf cikis_saat >[COLOR="red"]=[/COLOR] 541666667 And donus_saat [COLOR="red"]>[/COLOR] 791666667 Then
harcirah_hesapla6 = "1/3"
Else
harcirah_hesapla6 = ""
End If
ElseIf cikis_tarih < donus_tarih Then
harcirah_hesapla6 = donus_tarih - cikis_tarih * 1
Else
harcirah_hesapla6 = ""
End If
End Function
Function harcirah_hesapla7(cikis_tarih, cikis_saat, donus_tarih, donus_saat)
If IsDate(cikis_tarih) = False Then harcirah_hesapla7 = "": Exit Function
If IsDate(donus_tarih) = False Then harcirah_hesapla7 = "": Exit Function
If cikis_saat = "" Then harcirah_hesapla7 = "": Exit Function
If donus_saat = "" Then harcirah_hesapla7 = "": Exit Function
If UBound(Split(cikis_saat, ",")) > 0 Then
If Left(cikis_saat, 1) > 0 Then
cikis_saat = Replace(cikis_saat, ",", ":")
End If
End If
If UBound(Split(donus_saat, ",")) > 0 Then
If Left(donus_saat, 1) > 0 Then
donus_saat = Replace(donus_saat, ",", ":")
End If
End If
cikis_saat = Val(Mid(Left(Format(cikis_saat, "0.000000000"), 11), 3, 9))
donus_saat = Val(Mid(Left(Format(donus_saat, "0.000000000"), 11), 3, 9))
'MsgBox donus_saat
If cikis_saat <= 0 And donus_saat <= 0 Then harcirah_hesapla7 = "": Exit Function
'If donus_saat <= 0 Then harcirah_hesapla7 = "": Exit Function
If cikis_tarih = donus_tarih Then
If cikis_saat < 541666667 And donus_saat > 791666667 Then
harcirah_hesapla7 = "2/3"
ElseIf cikis_saat < 541666667 And donus_saat > 541666667 Then
harcirah_hesapla7 = "1/3"
ElseIf cikis_saat >= 541666667 And donus_saat > 791666667 Then
harcirah_hesapla7 = "1/3"
ElseIf cikis_saat = 541666667 And donus_saat = 791666667 Then
harcirah_hesapla7 = "1/3"
ElseIf cikis_saat = 791666667 And donus_saat = 0 Then
harcirah_hesapla7 = "2/3"
ElseIf cikis_saat = 791666667 And donus_saat < 541666667 Then
harcirah_hesapla7 = "2/3"
ElseIf cikis_saat = 791666667 And donus_saat > 791666667 And donus_saat < 999988426 Then
harcirah_hesapla7 = "1/3"
Else
harcirah_hesapla7 = ""
End If
ElseIf cikis_tarih < donus_tarih Then
harcirah_hesapla7 = donus_tarih - cikis_tarih * 1
Else
harcirah_hesapla7 = ""
End If
End Function