Excel - Aktuelles Datum/Uhrzeit automatisch in eine Zelle einfügen

Excel - Aktuelles Datum/Uhrzeit automatisch in eine Zelle einfügen

Ich versuche, etwas in eine Spalte einzufügen Aoder Bdas aktuelle Datum und die aktuelle Uhrzeit in die Spalte einzufügen/aktualisieren D. Das habe ich natürlich schon gemacht, aber ich möchte Spalten ausschließen C, und Ddas bedeutet, wenn etwas in diese Spalten eingefügt wird, sollen Datum/Uhrzeit nicht eingefügt/aktualisiert werden.

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row > 1 Then Cells(Target.Row, "D") = Now()
End Sub

Ich habe auch einen anderen Code, kann aber immer noch keine Möglichkeit finden, einige Spalten auszuschließen (um einen Spaltenbereich zu erstellen, bei dem die Aktualisierung von Datum/Uhrzeit funktionieren sollte).

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target(1, 1).Row > 1 Then
        With Cells(Target(1, 1).Row, "D")
            .Value = Now
            .NumberFormat = "dd-mm-yyyy, hh:mm:ss"
        End With
    End If
End Sub

BEARBEITEN: Dies ist mein endgültiger Code.

Private Sub Worksheet_Change(ByVal Target As Range)

    If (Target.Row > 1) And (Target.Column = 1) Then
       With Cells(Target.Row, "D")
            .Value = Date
            .NumberFormat = "dd-mm-yyyy"
      End With
    End If

    If (Target.Row > 1) And (Target.Column = 2) Then
      With Cells(Target.Row, "E")
            .Value = Now
            .NumberFormat = "dd-mm-yyyy, hh:mm:ss"
      End With
    End If

End Sub

Antwort1

Fügen Sie eine Bedingung hinzu, die zusätzlich zur Zeilenbedingung für die Spalten A und B erfüllt werden muss:

Private Sub Worksheet_Change(ByVal Target As Range)
    If (Target.Row > 1) And ((Target.Column = 1) Or (Target.Column = 2)) Then
      'Cells(Target.Row, "D") = Now()
      With Cells(Target.Row, "D")
          .Value = Now
          .NumberFormat = "dd-mm-yyyy, hh:mm:ss"
      End With
    End If
End Sub

Jetzt wird das Datum nur eingefügt, wenn diese beiden Spalten bearbeitet werden.

Antwort2

Sie müssen Folgendes überprüfen:

  1. Die Zeile ist nicht 1
  2. Die Spalte ist 1 oder 2
  3. Ziel ist die einzelne Zelle

und vielleicht

  1. Spalte D in der aktuellen Zeile ist leer

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row > 1 _
   And Target.Column <= 2 _
   And Target.Cells.Count = 1 Then
        Cells(Target.Row, "D") = Now()
    End If
End Sub

Dieser Code funktioniert NICHT, wenn Sie einen Bereich mit mehr als einer Zelle kopieren und einfügen.

Antwort3

Probieren Sie Folgendes aus:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim r As Long
    r = Target.Row
    c = Target.Column
    If r > 1 And (c = 1 Or c = 2) Then
        If Cells(r, "C") = "" And Cells(r, "D") = "" Then
            Application.EnableEvents = False
                Cells(r, "D") = Now()
            Application.EnableEvents = True
        End If
    End If
End Sub

Dadurch sollten alle erforderlichen Bedingungen getestet werden.

verwandte Informationen