• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Datum + tijd in Excel

Status
Niet open voor verdere reacties.

Dave35nl

Gebruiker
Lid geworden
27 feb 2002
Berichten
216
Hallo,

Ik wil in Excel een datum + tijd neerzetten, deze moet verschijnen op het moment dat ik bv in cel A1 een waarde invul de datum + tijd in cel B1automatisch verschijnt.

ik weet dat de functie =NOW() deze datum + tijd creeert maar hoe zet ik deze vast zodat deze niet meer veranderd met herbereken of werkblad openen.
 
Hoi CorVerm,

Die optie met een macro en copy / paste had ik al geprobeerd het probleem is echter dat ik een hele reeks met datums onder elkaar krijg, als ik dan elke keer met copy en paste werk dan veranderd deze waarde alsnog, bedankt maar helaas
 
Was een leuke,

De oplossing ligt wel in VBA, je moet echter geen macro schrijven maar een functie.
Functies maak je op een vergelijkbare wijze als macro's, gewoon in een module, je kunt dan deze functie oproepen bij Functies, Door gebruiker gedefenieerd.

Hieronder het voorbeeld, eenmaal ingevoerd veranderd de waarde niet meer.

Function VasteTijd(waarde)
If waarde > 0 Then
VasteTijd = Date + Time
Else
VasteTijd = ""
End If
End Function

Zijn er nog vragen dan hoor ik het wel
Oja vergeet in de betreffende cel niet de eigenschappen aan te passen zodat deze ook de tijd aangeeft
 
Hoi Michel,

Bedankt voor je antwoord, ga het straks proberen op m'n werk, heb je deze toevallig ook in de Engelse uitvoering .., en werkt het met een if then functie moet ik dan waar jij schrijft "waarde" ik de voorwaarden neer zetten ?
 
Dit werkt al in het Engels, stuur je vanmiddag wel iets op zodat je het beter begrijpt.
In de praktijk werkt het hetzelfde als een normale functie.

Het maken van Eigen Functies kan een enorme aanwinst zijn.
 
Hoi Dave,

Met een macro zal het wel lukken, maar ben je ook bekend met de toetsencombinatie:
Ctrl+; (huidige datum)
Ctrl+Sht+: (huidige tijd)

Groeten,

Richard
 
Hoi Richard,

Hoe kan ik de macro laten starten, de datum / tijd moet pas in kolom B ingevuld worden als in kolom A iets is ingevuld, kan ik een macro laten lopen op voorwaarden ( met if / then) en zal de macro reeds gevulde cellen niet overschrijven ?
 
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
 

Bijlagen

Ik wil ook zoiets, maar dan anders:D
Ik heb een sjabloon gemaakt, nu wil op het moment dat "opslaan als" gebruikt wordt de huidige datum ingevuld wordt en daarna met "opslaan" niet meer!
Is dat mogelijk?
 
Beste Ron,

Binnen Excel wordt volgens mij geen verschil gemaakt tussen Opslaan en Opslaan als.
Wat wel kan is het volgende.
Ga naar VBA, en klik in de Projectverkenner op ThisWorkbook en dubbelklik daarop. Kies in het rechter scherm voor 'Workbook' en zet daarin de volgende twee macro's:

Private Sub Workbook_Open()
If ThisWorkbook.Name = "sjabloon.xls" Then
Range("B1").Select
Selection.ClearContents
Else
End If
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Range("B1").Value <> "" Then
ElseIf Range("A1").Value <> "" Then
Range("B1").Value = Now()
End If
End Sub

Als de sjabloon wordt geopend, wordt alles dat in cel B1 staat uitgeveegd. Bij het opslaan (op welke manier dan ook) komt er in cel B1 de datum te staan, mits A1 gevuld is. Je kunt zelf van je sjabloon een 'alleen lezen' bestand maken neem ik aan.

Succes,

Richard
 
Dit gaat niet werken omdat naderhand op andere dagen het rapport nogmaals licht gewijzigd wordt en opgeslagen.
Dus van het sjabloon wordt een werkmap gemaakt en op dat moment wil ik de datum laten verschijnen en vastleggen.

Alvast bedankt voor je reactie
 
Ok bedankt voor jullie reacties, Michel ben met jouw verhaal aan de slag gegaan en na wat problemen denk ik dat ik snap hoe het werkt (ben niet thuis in VBA), ik krijg intussen "mijn" datum en tijd waar en wanneer ik hem hebben wil.
 
vastmoment

Probeerde deze functie, ik heb ze ook kunnen invoegen en plaatsen bij de functies maar ze werkt niet, de datum wordt toch steeds aangepast als ik het bestand open.
Wat doe ik fout?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan