Excel/VBA: Laatst gewijzigd, per regel

Status
Niet open voor verdere reacties.

Tosty82

Gebruiker
Lid geworden
23 nov 2007
Berichten
19
Ik ben bezig met een checklist.
Per onderwerp (kolom B) heb ik een aantal acties die ik moet uitvoeren (staan in de kolommen achter de naam).
Nu wil ik als laatste kolom een kopje 'gewijzigd'. Als er in de regel iets word gewijzigd moet dat moment (datum/tijd) in het betreffende 'gewijzigd'-veld komen.
Dit leek mij iets te geavanceerd voor Excel zelf, dus ik hoop dat mijn post hier goed zit.
Alvast bedankt voor de input.

Tosty_82

P.S. ik heb geprobeerd met een macro met =NOW() te werken, maar die past alle velden in die kolom opnieuw aan.
 
Hallo tosty,

kun je het voorbeeldje ff meezippen. dat werkt wat makkelijker en hoef je het niet meer aan te passen!:D
 
Deschrik,

Hierbij het bestandje.
Het is dus de bedoeling dat er word gemonitored op het gebied D2:V98 (of eigenlijk nog liever D2 t/m V-oneindig) en dat een wijziging in een regel de waarde NOW() in kolom W geeft.
Dus ik pas D5 aan dan krijgt W5 de waarde Now()
5 minuten later pas ik E8 aan, dan krijgt W8 now().

Alvast bedankt.

Tosty
 

Bijlagen

Zo hij werkt!:D

Kijk maar of je het zo bedoelt.

PS ik houd er rekening mee, dat nadat je iets hebt gewijzigd je op enter drukt.

mocht je nadat je wat hebt gewijzigd op Tab drukken, wijzig dan de code:
Code:
Dim HuidigeRij
HuidigeRij = ActiveCell.Row - 1

in

Code:
Dim HuidigeRij
HuidigeRij = ActiveCell.Row

succes!
 

Bijlagen

Laatst bewerkt:
deschrik,

het is mooi dat je anderen helpt met hun problemen.

Maar euh... aan jouw code schort er toch wel het een en ander.

- waarom al die regels code die niet nodig zijn? Je maakt variabelen aan, en doet er vervolgens niets mee.

- variabelen moet je declareren, en niet zomaar als Variant type. Declareren als Integer, String, Double, Long is allemaal véél beter.

- Bij het wegschrijven van Now naar het scherm, wijzig je iets in het scherm. Dus wordt het event Worksheet_Change nog een keer gedaan. Maar dat event wijzigt weer iets. Dus weer je event, ... En ga zo maar door. Niet echt om vrolijk van te worden.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    
    With Target
    
        If .Column >= 4 And .Column <= 22 Then 'tussen kolom D en kolom V
        
            Application.EnableEvents = False
            Range("W" & .Row).Value = Now
            Application.EnableEvents = True
            
        End If
        
    End With

End Sub

Wigi
 
Dank Wigi en Deschrik,
Ik heb aan beide codes in ieder geval iets gehad, ik heb er weer wat van geleerd ;)
Wigi, je code werkt erg goed zo (en geeft me ruimte om er wat aan bij te bouwen).

Tosty
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan