Datum bei veränderten Zellwerten per Makro eintragen

210 Aufrufe
Gefragt 18, Mai 2017 in Tabellenkalkulation von Mitglied (311 Punkte)
Hallo, liebe Experten,

ich knabber mir schon wieder bei einer neuen Idee die Fingernägel ab ;). Und zwar möchte ich, dass wenn ich in einer Zeile irgendein Wert in den Spalten ändere, dann in eine bestimmte Spalte (aber gleiche Zeile) das heutige Datum eingetragen wird. Hier mal ein Bsp. zur Veranschaulichung:

In dem Zellbereich A10:M10 und O10:P10 habe ich verschiedene Werte stehen. Nun ändere ich bspw. den Wert in Zelle C10 woraufhin sich in Zelle N10 das auf den heutigen Tag automatisch updaten soll.

Hättet Ihr hier vielleicht eine Idee? ich bin ehrlich gesagt nicht so fit mit Makros bei solchen Aktionen.

Vielen lieben Dank.

Gruss

Peter

5 Antworten

0 Punkte
Beantwortet 18, Mai 2017 von Nighty__
Hallo Peter .-)

Wie gewünscht!

Gruss Nighty

Einzufügen
Alt+F11/Projectexplorer/DeineTabelle

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Application.Intersect(Range("A10:M10"), Range("O10:P10")) Is Nothing Then Range("N10") = Date
Application.EnableEvents = True
End Sub
0 Punkte
Beantwortet 19, Mai 2017 von Mitglied (311 Punkte)
Hallo Nighty,

es funktioniert fast perfekt. Ich habe mir nur eine kleine Änderung erlaubt und noch ein kleines Problemchen.

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Application.Intersect(Range("A2:M5000"), Range("O2:P5000")) Is Nothing Then Range("N" & Activecell.row) = Date
Application.EnableEvents = True
End Sub

Wenn ich z. B. in Spalte N10 das Datum manuell eintrage und anschließend Enter drücke, wird das Datum in Zelle N11 auf den heutigen Tag aktualisiert. Das will ich aber nicht.

Wenn ich zudem nach links oder rechts nach der Eingabe in N10 drücke, springt das Makro wieder an und in N10 steht wieder das heutige Datum.

Hättest Du hier vielleicht noch eine Idee?

Vielen Dank und noch ein schönes Wochenende.

Gruss

Peter Sachse
0 Punkte
Beantwortet 19, Mai 2017 von Nighty__
Hallo Peter .-)

Probier mal

Gruss Nighty

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column < 14 Or Target.Column > 14 And Target.Column < 17 Then Range("N" & Target.Row) = Date
Application.EnableEvents = True
End Sub
0 Punkte
Beantwortet 19, Mai 2017 von Nighty__
Hallo Peter .-)

Oder so!
Überschrift berücksichtigt!

Gruss Nighty

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column < 14 Or Target.Column > 14 And Target.Column < 17 Then
If Target.Row > 1 Then Range("N" & Target.Row) = Date
End If
Application.EnableEvents = True
End Sub
0 Punkte
Beantwortet 20, Mai 2017 von Mitglied (311 Punkte)
Hallo Nighty,

funktioniert super.

Vielen Dank.

Gruss

Peter
...