Op 16-02-15 om 20:21 schreef VLB1:

Er zijn altijd situaties te bedenken dat met de geneste situatie
wenselijker is.

Ammehoela, die kende ik nog niet... :-) Voorbeeld?

Kijk eens naar deze code hieronder met een paar geneste ALS functies. Heb ik lang geleden gemaakt voor een taxichauffeur die de nachturen (00.00 tot 6.00u) met zijn spreadsheet wilde uitrekenen en er niet uitkwam. De totale werktijd kon die wel zelf uitrekenen. Het werkt alleen als de begintijd en eindtijd niet meer dan 48 uur uit elkaar liggen.

Niet om aan te zien, laat staan of iemand zich daar verder in wil verdiepen.

A2 Begintijd
B2 Eindtijd

=ALS(EN(((A2-GEH.GET.(A2))>=0,25);((B2-GEH.GET.(B2))>=0,25));REST((AFRONDEN.NAAR.BOVEN(B2;0)-AFRONDEN.NAAR.BOVEN(A2;0));0,75);ALS(((A2-GEH.GET.(A2))>=0,25);REST((B2-AFRONDEN.NAAR.BOVEN(A2;0));0,75);ALS(((B2-GEH.GET.(B2))>=0,25);REST(((GEH.GET.(B2)+0,25)-A2);0,75);REST((B2-A2);0,75))))

En nu de zelfgemaakte functie NACHT() die de 48 uur beperking niet heeft. Dat is toch veel overzichtelijker en wenselijker. :-)

REM  *****  BASIC  *****

Function Nacht(a as double, b as double)
Dim Minuten as integer
Dim I
Dim EenMinuut
Dim BeginTijd
Dim AchterKomma
Dim VoorKomma as integer
Dim NachtMinuten

Minuten=(b-a)*24*60
EenMinuut=0.000694444
BeginTijd=a

For I = 1 to Minuten
        BeginTijd = BeginTijd + EenMinuut
        AchterKomma = BeginTijd - int(BeginTijd)
                If AchterKomma < 0.25 Then
                        NachtMinuten = NachtMinuten + 1
                End If
Next I
Nacht=NachtMinuten
End Function


--
Antoon
Ubuntu Linux 3.13.0-24
LibreOffice Versie: 4.2.7.2

--
Unsubscribe instructions: E-mail to users+unsubscr...@nl.libreoffice.org
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/nl/users/
All messages sent to this list will be publicly archived and cannot be deleted

Antwoord per e-mail aan