|
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.
|