Statisches Datum in Excel Via Formel oder Makro
Hallo zusammen,
ich habe mal eine Frage und zwar:
Ich habe eine Tabelle, in Spalte B wird via Formel =WENN(D8<>"";HEUTE();" ") das aktuelle Datum und in Spalte C die aktuelle Uhrzeit automatisch eingetragen. Sobald ich jetzt etwas in der Zeile verändere springt die Uhrzeit und das Datum auf das aktuelle. Wie kann ich jetzt sagen das die Werte Fix bleiben?
Gruß
Alexander
ich habe mal eine Frage und zwar:
Ich habe eine Tabelle, in Spalte B wird via Formel =WENN(D8<>"";HEUTE();" ") das aktuelle Datum und in Spalte C die aktuelle Uhrzeit automatisch eingetragen. Sobald ich jetzt etwas in der Zeile verändere springt die Uhrzeit und das Datum auf das aktuelle. Wie kann ich jetzt sagen das die Werte Fix bleiben?
Gruß
Alexander
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 253582
Url: https://administrator.de/contentid/253582
Ausgedruckt am: 26.11.2024 um 17:11 Uhr
12 Kommentare
Neuester Kommentar
Hallo Alexander,
mit einer Formel wird das nicht funktionieren, per Makro schon.
Öffne den VBEditor mit Alt+F11. Doppelklicke links auf die entsprechende Tabelle und füge rechts folgenden Code ein:
Stelle sicher, dass die Zellen in den Spalten B und C wirklich leer sind (keine Formeln oder ähnliches).
Grüße
rubberman
mit einer Formel wird das nicht funktionieren, per Makro schon.
Öffne den VBEditor mit Alt+F11. Doppelklicke links auf die entsprechende Tabelle und füge rechts folgenden Code ein:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count = 1 And Target.Column = 4 Then
If Not IsEmpty(Target) And IsEmpty(Cells(Target.Row, 2)) And IsEmpty(Cells(Target.Row, 3)) Then
Cells(Target.Row, 2) = Date
Cells(Target.Row, 3) = Time
End If
End If
End Sub
Grüße
rubberman
Hallo Alexander,
natürlich kann man das.
Grüße
rubberman
natürlich kann man das.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count = 1 And Not IsEmpty(Target) Then
If Target.Column = 4 _
And IsEmpty(Cells(Target.Row, 2)) _
And IsEmpty(Cells(Target.Row, 3)) _
Then
Cells(Target.Row, 2) = Date
Cells(Target.Row, 3) = Time
ElseIf Target.Column = 13 _
And IsEmpty(Cells(Target.Row, 12)) _
Then
Cells(Target.Row, 12) = Date
End If
End If
End Sub
Grüße
rubberman
Hallo Alexander,
ich hatte es getestet. Funktioniert bei mir völlig problemlos.
Auch hier gilt dass die Zellen in Spalte 12 vorher leer sein müssen, bitte noch mal prüfen. Auch ein nicht sichtbares Leerzeichen ist ein Zelleninhalt.
Kann auch sein dass du Spalten ausgeblendet hast. Das wird vom Makro nicht berücksichtigt. Spalte 12 ist immer "L" und Spalte 13 immer "M".
Grüße
rubberman
ich hatte es getestet. Funktioniert bei mir völlig problemlos.
Auch hier gilt dass die Zellen in Spalte 12 vorher leer sein müssen, bitte noch mal prüfen. Auch ein nicht sichtbares Leerzeichen ist ein Zelleninhalt.
Kann auch sein dass du Spalten ausgeblendet hast. Das wird vom Makro nicht berücksichtigt. Spalte 12 ist immer "L" und Spalte 13 immer "M".
Grüße
rubberman
Hallo Alexander,
hast du dich mal gefragt was die IsEmpty() Funktion macht?
Grüße
rubberman
hast du dich mal gefragt was die IsEmpty() Funktion macht?
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count = 1 And Not IsEmpty(Target) Then
If Target.Column = 4 _
And IsEmpty(Cells(Target.Row, 2)) _
And IsEmpty(Cells(Target.Row, 3)) _
Then
Cells(Target.Row, 2) = Date
Cells(Target.Row, 3) = Time
ElseIf Target.Column = 13 _
And IsEmpty(Cells(Target.Row, 12)) _
Then
Cells(Target.Row, 12) = Date
If IsEmpty(Target.Row, 8) Then Cells(Target.Row, 8) = "-"
If IsEmpty(Target.Row, 11) Then Cells(Target.Row, 11) = " "
If IsEmpty(Target.Row, 6) Then Cells(Target.Row, 6) = " "
End If
End If
End Sub
rubberman
Hallo Alexander.
IsEmpty() gibt "Wahr" zurück, wenn die Zelle leer ist, anderenfalls "Falsch".
Im Moment:
IsEmpty() gibt "Wahr" zurück, wenn die Zelle leer ist, anderenfalls "Falsch".
Aber so klappt es leider auch nicht.
Dann erkläre noch einmal genau, wie es funktionieren soll.Im Moment:
- Wenn die Zelle in Spalte M leer ist dann
- Datum in Spalte L schreiben
- Wenn die Zelle in Spalte H leer ist dann
- in Spalte H ein - schreiben
- Wenn die Zelle in Spalte K leer ist dann
- in Spalte K ein Leerzeichen schreiben
- Wenn die Zelle in Spalte F leer ist dann
- in Spalte F ein Leerzeichen schreiben
Betrachte die Einrückungen als Hierarchie bei der Abarbeitung.
Grüße rubberman