Clever-Excel-Forum

Normale Version: Aktuelles Datum speichern und auch löschen können
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebe Mitglieder,
bin neu hier und habe schon in anderen Foren gesucht.
Ich suche einen VBA-Kode, mit dem ich bei Eintrag in einer Spalte in der betreffenden Zeile das aktuelle Datum speichern kann.
Wenn der Eintrag in der Spalte gelöscht wird, soll auch das Datum wieder gelöscht werden.

Kann mir da jemand helfen?

Vielen Dank schon einmal
Excelbeginner
Hallo,

ich verwende dafür i.d.R. den folgende VBA-Code:


Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'Quelle: Ransi
   If Intersect(Target, Range("A1:A10")) Is Nothing Then Exit Sub
   If Target.Count > 1 Then Exit Sub 'Bearbeiten mehrerer Zeilen wird abgefangen
   If Target = "" Then
       Target.Offset(0, 1).ClearContents
       Else:
       Target.Offset(0, 1) = CDate(Format(Now, "dd.mm.yyyy"))
   End If
End Sub

Wenn im Bereich von A1 bis A10 (das muss im Code angepasst werden) etwas eingetragen wird dann erscheint in der Spalte B das entsprechende Datum. Wird der Wert in A1 gelöscht wird auch das Datum gelöscht.

Der Code muss in das Modul des entsprechenden Tabellenblattes:
- mit Alt+F11 den VBA-Editor öffnen
- mit Strg+R den Projekt-Explorer öffnen und aktivieren
- die gewünschte Datei per Doppelklick markieren
- auf das gewünschte Tabellenblatt unterhalb dieser Datei doppelklicken
- in der rechten Fensterhälfte ist das Codefenster dieser Tabelle sichtbar
- dort den Code einfügen
- speichern und den VBA-Editor mit Alt+F4 schliessen

Hilft dir das weiter?
Hallo Peter,
sorry für die Verspätung. Ich war einen Tag nicht da.

Ich habe mir aus verschiedenen Vorschlägen Folgendes zuammengebastelt, weiß aber nicht, wo der Unterschied zu Deiner Lösung ist:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 Select Case Target.Column
   Case 11 To 11: Cells(Target.Row, 1) = Date

   If Target = "" Then
       Cells(Target.Row, 1).ClearContents
       Else:
       Target.Offset(0, -10) = Date
       End If
 End Select
End Sub

Das funktioniert ganz gut, allerdings habe ich festgestellt, dass ein Fehler auftritt, wenn ich mehrere Zellen gleichzeitig bearbeite.

Dafür ist wohl Dein


Code:
If Target.Count > 1 Then Exit Sub 'Bearbeiten mehrerer Zeilen wird abgefangen
Das habe ich jetzt eingearbeitet und es funktioniert prima.  Vielen Dank!

Was muss ich im Kode ändern, damit das Ganze erst ab Zeile 8 stattfindet?

Wofür ist

Code:
If Intersect(Target, Range("A1:A10")) Is Nothing Then Exit Sub


Viele Grüße und besten Dank! :15:

Excelbginner
Hallo,

Code:
If Intersect(Target, Range("A1:A10")) Is Nothing Then Exit Sub

hier gibst du den Bereich an der überprüft werden soll (in diesem Fall A1 bis A10)
Hallo,

Dein Code ist nicht stimmig.

Diese Zeilen werden nie ausgeführt:

Code:
  If Target = "" Then
      Cells(Target.Row, 1).ClearContents
      Else:
      Target.Offset(0, -10) = Date
      End If


Da Du vorher grundsätzlich das Datum reinschreibst.

Für Dein Vorhaben reicht das hier:
PHP-Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 
 If Target.Row And Target.Column 11 Then
     
If Target.Text "" Then
         Cells
(Target.Row1).ClearContents
    Else
         Cells
(Target.Row1) = Date
    End 
If
 
 End If
End Sub 

So kommt es zu keinem Fehler, wenn mehrere Zellen ausgewählt werden.
Aber es wird in diesem Fall immer auf Änderungen der obersten Zelle reagiert.
Hallo Atilla,

das rockt, vielen Dank! :15:

Bist Du in ganz anderen Foren auch unter dem Nickname unterwegs?

Viele Grüße
Excelbeginner
(22.02.2015, 21:28)Excelbeginner schrieb: [ -> ]Bist Du in ganz anderen Foren auch unter dem Nickname unterwegs?

Ich bin zwar auch in anderen Excel Foren angemeldet, aber in denen bin ich selten unterwegs und teilweise auch unter einem anderen Nick.

Aber wenn ein Atilla Dir in anderen foren positiv aufgefallen ist, dann kannst du denken, ich wäre es.
Ansonsten ist das bestimmt ein anderer Atilla Wink
Hallo Atilla,
war ein ganz anderes Forum und hatte nchts mit Excel zu tun. Ich habe dort mal einen Atilla um eine Information gebeten, und siehe da, er kaum aus dem Nachbarort.

Viele Grüße

Excelbeginner