Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA - Datum automatisch einfügen / aktualisieren
#1
Ich würde gerne ein Makro schreiben, welches sich automatisch aktiviert.
Habe dazu auch bereits Beispiele gefunden jedoch keine passende Umsetzung für meinen Fall.

Das Makro soll in dem Worksheet überwachen, ob sich in dem Bereich D2:E1000 etwas ändert.
Wenn dort eine Änderung durch eine Useraktivität (zb. User gibt einen Wert ein) stattfand, dann soll er F & Row der geänderten Zelle das heutige Datum automatisch eintragen, falls ein Datum vorhanden ist, soll es aktualisiert werden.

Beispiel:
User gibt einen Wert in E345 ein. Dann soll das Marko ausgeführt werden und in F345 das aktuelle Datum schreiben.

LG
Korain
Antworten Top
#2
Hallo,

versuche es mal mit diesem Makro im Modul des Tabellenblattes, auf dem es wirken soll:

Code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim isect As Range
    Set isect = Application.Intersect(Target, Range("D2:E1000"))
    If Not isect Is Nothing Then Cells(Target.Row, 6) = CDate(VBA.Date)
End Sub
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#3
(09.12.2021, 17:18)Klaus-Dieter schrieb: Hallo,

versuche es mal mit diesem Makro im Modul des Tabellenblattes, auf dem es wirken soll:

Code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim isect As Range
    Set isect = Application.Intersect(Target, Range("D2:E1000"))
    If Not isect Is Nothing Then Cells(Target.Row, 6) = CDate(VBA.Date)
End Sub

Hallo Klaus-Dieter,
damit klappt's perfekt! 

Ich danke dir vielmals.

LG
Korain
Antworten Top
#4
Hallo,

ich habe ein sehr ähnliches Problem (vermute ich zumindest - ich schaffe es leider nicht den Code selber anzupassen Huh ):

Ich möchte, dass wenn in den Feldern H8:AP8 ein Wert eingegeben wird, im entsprechenden Feld darunter (Zeile 9) das Datum zum Tag des Eintrags automatisch erscheint.


Erschwerend kommt noch hinzu, dass ich das Makro noch auf weitere Zeilen übertragen will (Evtl. geht das "einfach" mit Copy+Paste?):
H10:AP10 Wert eingegeben -> im Feld darunter (Zeile 11) das Datum zum Tag des Eintrags erscheint
H12:AP12 Wert eingegeben -> im Feld darunter (Zeile 13) das Datum zum Tag des Eintrags erscheint
...
H76:AP76 Wert eingegeben -> im Feld darunter (Zeile 77) das Datum zum Tag des Eintrags erscheint

Beste Grüße
Markus
Antworten Top
#5
Moin!
Nur weil zwei das Gleiche tun, ist es nicht dasselbe!
Heißt, dass hier eine andere Anforderung vorliegt, die wenig mit der Threaderöffnung zu tun hat.
Normalerweise eröffnet man dann einen neuen Thread, aber … egal!

Prinzipiell ähnelt Dein Blatt eher einer Papiertabelle als einer gültigen Excel-Liste.
Du musst also nicht nur prüfen, ob sich das Target (die geänderte Zelle) im Bereich H8:AP76 befindet,
sondern auch prüfen, ob die Änderung in einer geraden Zeile erfolgt.
In Excel macht man die Prüfung mittels =REST(ZEILE(Zelle);2)=0
in VBA z.B. mittels If Target.Row Mod 2 = 0 Then

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("H8:AP76")) Is Nothing Then
  With Target
    If .CountLarge = 1 And .Row Mod 2 = 0 Then
      .Offset(1, 0) = Date
    End If
  End With
End If
End Sub

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#6
Hallo Ralf,

vielen Dank für deine Antwort!
Tut mir leid, dass ich keinen neuen Thread aufgemacht habe.

Der Code funktioniert prima.

Vielen, vielen Dank! Du hast mir damit wirklich sehr geholfen.

Beste Grüße
Markus
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste