• 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 enkel aanpassen wanneer het document gezwijzigd is.

Status
Niet open voor verdere reacties.

Pascal321

Gebruiker
Lid geworden
5 aug 2017
Berichten
195
Hallo iedereen, ik heb een werkblad waarbij onderaan staat 'laatst gewijzigd op'. In de cel ernaast wil ik dan dat de datum verschijnt enkel wanneer er effectief iets gewijzigd is aan het document. Hoe doe je dit?
 
Dan krijg je zoiets:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 1 Then
        Range("X1").Value = Now
    End If
End Sub
In het voorbeeldje wordt een datum/tijd in X1 gezet als in kolom 1 iets wordt gewijzigd. Kun je wel aanpassen naar je eigen behoefte denk ik :).
 
En toch maar even aangepast naar je vraag. Dan krijg je dus dit:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 1 Then
        Target.Offset(0, 1).Value = Now
    End If
End Sub
 
Ik neem aan dat dit moet ingegeven worden via VBA? En hoe precies want ik ken hier niets van. :confused:
En hoe moet dit geactiveerd worden?
 
In welke cel moet die datum/tijd komen te staan.?
Druk Alt+F11 voor de VBA editor.
 
Ik neem aan dat dit moet ingegeven worden via VBA? En hoe precies want ik ken hier niets van. En hoe moet dit geactiveerd worden?
Als je rechtsklikt op het werkblad waar je de code actief wilt hebben, kun je de complete code plakken. Werkt dan gelijk zodra je iets wijzigt in het werkblad.
 
@ AD1957: in cel B44, maar dat kan natuurlijk veranderen als er rijen bijkomen.
Alt-F11 werkt trouwens bij mij niet, ik moet de VBA via het menu oproepen.
Is trouwens toevallig gelukt. Maar hoe moet ik de code veranderen zodat ik enkel de datum laat verschijnen ZONDER het uur?
 
Plaats het bestand even want de aangereikte oplossingen lijken mij niet overeen te komen met de vraag. Now veranderen in Date geeft alleen de datum.
 
@ VenA: Zie bestand in bijlage: betreft beurtenkaarten/abo's van leden binnen een sportclub
In dit geval moet de datum in cel B32 automatisch aangepast worden naar de datum van aanpassing, ZONDER de tijdsweergave.
 

Bijlagen

  • 2021.xlsm
    14 KB · Weergaven: 21
Dan zal het zoiets worden.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, Range("A2:J29")) Is Nothing Then Range("B32") = Date
End Sub
 
Ok, dat lukt, thx. :thumb:
MAAR wat als er rijen toegevoegd worden in het werkblad? Dan klopt het blijkbaar niet meer. :confused:
 
Als er rijen toegevoegd worden, betekent dat dan ook dat de datum naar beneden schuift? Waarom zet je die niet bovenin?

Haal de datum eerst weg en vervolgens kun je onderstaande code gebruiken. Als er nieuwe rijen bijkomen worden die ook meegenomen.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, Range("A2:J" & Range("A" & Rows.Count).End(xlUp).Row)) Is Nothing Then Range("M1") = Date
End Sub

of

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, Cells(1, 1).CurrentRegion) Is Nothing Then Range("M1") = Date
End Sub
 
Laatst bewerkt:
Als er rijen toegevoegd worden, betekent dat dan ook dat de datum naar beneden schuift?
Ja
Waarom zet je die niet bovenin?
Omwille van mijn autistisch brein vrees ik ;)

Tweede code werkt perfect wanneer ik rijen invoeg, thx! :thumb:

Wat me wel opvalt is dat wanneer ik iets wijzig in het werkblad (ik verwijder bijv iets in de tabellen) dan werkt de knop 'ongedaan maken' niet. :confused:
Als ik daarentegen een nieuwe rij invoeg (en dus eigenlijk ook een wijziging aanbreng) kan ik dat wel ongedaan maken. :eek: Hoe komt dat?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan