Równa czcionka Temat: Re: Excel - liczenie godzin nocnych i dziennych do pracy
Autor: Cynio Data: 14 Cze 2011
Odwołania: 1
no coz formu?ami to troch? warunk?w jest, poni?ej funkcja, kt?r?
stworzy?em w VBA (dzia?a jak ka?da inna), z dwoma parametrami, kom?rka
z pocz?tkiem i koncem pracy.


Function godziny_pracy(poczatek, koniec)

pocz_nocy = #10:00:00 PM#
kon_nocy = #6:00:00 AM#
If poczatek >= kon_nocy And poczatek < pocz_nocy Then
czy_dzienna_poczatek = "Y"
Else: czy_dzienna_poczatek = "N"
End If

If koniec >= kon_nocy And koniec < pocz_nocy Then
czy_dzienna_koniec = "Y"
Else: czy_dzienna_koniec = "N"
End If

'praca zaczyna sie w dzien i ko?czy si? w dzie?
If czy_dzienna_poczatek = "Y" And czy_dzienna_koniec = "Y" Then
If poczatek < koniec Then
godziny_pracy = Format(koniec - poczatek, "h") & " godzin
dziennych"
Else: godziny_pracy = Format(koniec - kon_nocy + pocz_nocy -
poczatek, "h") & " godzin dziennych i 8 godzin nocnych"
End If

End If

'praca zaczyna sie w dzie? i ko?czy si? w nocy
If czy_dzienna_poczatek = "Y" And czy_dzienna_koniec = "N" Then
If poczatek < koniec Then
godziny_pracy = Format(koniec - poczatek, "h") & " godzin
dziennych i " & Format(koniec - pocz_nocy, "h") & " godzin nocnych"
Else: godziny_pracy = Format(pocz_nocy - poczatek, "h") & " godzin
dziennych i " & Format(koniec + 2 / 24, "h") & " godzin nocnych"
End If

End If

'praca zaczyna sie w nocy i ko?czy si? w dzie?
If czy_dzienna_poczatek = "N" And czy_dzienna_koniec = "Y" Then
If poczatek < koniec Then
godziny_pracy = Format(koniec - kon_nocy, "h") & " godzin
dziennych i " & Format(kon_nocy - poczatek, "h") & " godzin nocnych"
Else: godziny_pracy = Format(koniec - kon_nocy, "h") & " godzin
dziennych i " & Format(1 - poczatek + 6 / 24, "h") & " godzin nocnych"
End If

End If

'praca zaczyna sie w nocy i ko?czy si? w nocy
If czy_dzienna_poczatek = "N" And czy_dzienna_koniec = "N" Then
If poczatek < koniec Then
godziny_pracy = "0 godzin dziennych i " & Format(koniec -
poczatek, "h") & " godzin nocnych"
Else: godziny_pracy = "0 godzin dziennych i " & Format(koniec +
2 / 24, "h") & " godzin nocnych"
End If

End If
End Function


--
Pozdr.
Cynio