Vaste datumwaarde in een functie
Als ik het goed begrijp wil je indien een cel aan een bepaalde voorwaade voldoet in de rechtercel de datum en de tijd dat in de eerste cel aan de voorwaarde voldaan is plaatsen.
In mijn voorbeeld maak ik gebruik van de stelling dat indien de waarde in cel A1 groter is dan 5 de huidige datum/tijd in cel B1 moet worden geplaatst.
Het volgende werkt niet:
B1=ALS(A1>5;NU();"") in het engels B1=ALS(A1>5;NOW();"")
Bij het opnieuw openen van de werkmap wordt de datum/tijd weer op een nieuwe waarde ingesteld. Je zou een functie moeten hebben die de huidige datum/tijd qweergeeft en deze niet meer aanpast. Maar helaas naar mijn weten bestaat deze functie niet.
Je kunt deze functie wel zelf maken in de VBA editor, die functie moet een unieke naam hebben. Stel dat deze functie er als is en dat ik deze VASTMOMENT noem. ( de functie Vastmoment geeft de datum/tijd weer, maar past deze waarde later niet meer aan.)
Je functie in het werkblad zou dan worden
B1=als(A1>5;VASTMOMENT();"")
Deze functie is op de normale wijze in te voeren, dus niets meer met macro's starten en zoals elke functie op de normale wijze te kopieeren.
Dat je in het engels werkt is niet relevant, de functienaam VASTMOMENT is alleen maar van belang voor de gebruiker zodat deze weet wat de functie uitvoert, voor mijn part noem je de functie HOIPIPELEPOI.
De functie VASTMOMENT bestaat nog niet, deze moet je zelf gaan opbouwen. Ga als volgt te werk;
Open de VBA editor
Voeg indien noodzakelijk een nieuwe module toe (Menu Invoegen,module)
Een macro begint altijd met sub gevolg door de macronaam en twee ronde haken.
Om een functie te maken ga je ongeveer op dezelfde wijze te werk.
Inplaats van sub begin je met function daarna volgt de functienaam en als laatst de twee ronde haken, echter tussen deze twee ronde haken, echter tussen deze twee ronde haken geef je op wat de eventuele invoerwaarde van de functie moeten zijn, is het er meer dan een dan plaats je het kommateken tussen deze invoerwaarde.
In het voorbeeld hebben we maar een invoerwaarde (cel A1), deze invoerwaarde moet een naam krijgen, hoe je deze invoerwaarde gaat benoemen is niet van belang. Het is wel makkelijk dat deze duidelijk is. In het voorbeeld noem ik deze invoerwaarde CONTROLEER.
De eerste regel van de functie wordt nu:
Function VASTMOMENT (CONTROLEER)
End function
er is nu een functie gemaakt met de naam vastmoment die als invoerwaarde (de cel waarnaar je verwijst) controleer heeft.
De functie zelf doet nog niks. Wat de functie dient te doen schrijf je tussen Function en End Function
dit wordt gewoon een IF vergelijking
Nu Compleet
Function VASTMOMENT(CONTROLEER)
If CONTROLEER > 5 Then
VASTMOMENT = Date + Time
Else
VASTMOMENT = ""
End If
End Function
Voorbeeld bestand zit er bij
Met function kun je elk wetenschappelijke finaciele of logische functie in Excel zelf opbouwen.
Succes