Onderwerp


Een datum- of tijdstempel invoeren



Informatie


Als je werkt met grote hoeveelheden gegevens, is het soms wenselijk om bij het invoeren of wijzigen van gegevens een datum- of tijdstempel te plaatsen. Er zijn meerdere manieren om dit te kunnen doen. De meest voor de hand liggende manier is om via Ctrl+Shift+; de huidige tijd in te voeren. Daar is niks mis mee, maar het kost een extra handeling en het gebeurt niet automatisch. Een tweede manier is om via de functie =VANDAAG() de huidige tijd op te nemen. Als er nooit meer iets wijzigt aan het werkblad is dat prima, maar in alle andere gevallen wordt deze functie bijgewerkt als er iets in het werkblad wijzigt. Ook deze optie valt dus af.

Wat overblijft is het schrijven van een VBA procedure die wordt uitgevoerd nadat gegevens in een bereik worden ingevoerd of gewijzigd.

Klik met de rechtermuisknop op de tab van het werkblad waar de gegevens worden ingevoerd of worden bewerkt. Klik op Programmacode weergeven, kopieer de volgende procedure en plaats deze in een module van de VBA Editor.

Private Sub Worksheet_Change(ByVal rngTarget As Excel.Range)
Dim rngCell As Range
Dim rngChange As Range

On Error GoTo ErrHandler
Set rngChange = Intersect(rngTarget, Range("A:A"))

If Not rngChange Is Nothing Then
Application.EnableEvents = False
For Each rngCell In rngChange
If rngCell > "" Then
With rngCell.Offset(0, 1)
.Value = Now
.NumberFormat = "HH:MM:SS"
End With
Else
rngCell.Offset(0, 1).Clear
End If
Next
End If

ExitHandler:
Set rngCell = Nothing
Set rngChange = Nothing
Application.EnableEvents = True
Exit Sub

ErrHandler:
MsgBox Err.Description
Resume ExitHandler
End Sub




Hoe het werkt.

Elke keer dat een cel in een rij van kolom A wordt bewerkt, wordt in dezelfde rij, maar nu van kolom B, een tijdstempel opgenomen door de waarde
NOW op te maken in het formaat HH:MM:SS. Als je alleen de dag moet tonen, dan wordt de opmaak DD/MM/YYYY. Indien je zowel de datum, als de tijd moeten tonen, dan wordt de opmaak DD/MM/YYYY - HH:MM:SS.