Microsoft Excel - automatisch Datum zu einem Eintrag vermerken
Gute Tag,
Ich hätte da mal eine Frage. Und zwar handelt es sich hierbei um das Tabellenkalkulationsprogramm Microsoft Excel. Hier habe ich etwas, was man als eine Art Ausgabenliste bezeichnen könnte. Hier werden in einer Spalte Ausgaben vermerkt. Jetzt hätte ich gerne eine Funktion, die zu jedem Eintrag in der Spalte daneben automatisch das Datum einträgt.
Also nochmal kurz: Zwei Spalten, A und B. In A werden regelmäßig Werte eingetragen. Jetzt möchte ich, dass wenn in der Spalte A ein Wert hinzugefügt wird, dass in der gleichen Zeile in Spalte B automatisch das Datum des jeweiligen Tags an dem der Eintrag stattfindet, eingetragen wird.
3 Antworten
Mein Vorschlag ist dieser einfach umzusetzende VBA Code:
Mache einen Rechtsklick auf den Tabellenreiter (unten, da wo z.B. Tabelle1 steht).
Klicke auf "Code anzeigen".
Dann öffnet sich der VBA-Editor. In das große, leere Fenster kopierst Du dieses bisschen Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then Target.Offset(0, 1).Value = Date
End Sub
Jetzt kannst Du den VBA-Editor wieder schließen, das ganze speichern, und mal etwas in Spalte A eingeben.
Klappt es?
- Da fehlt kein End If. Wenn man das, so wie gepostet in EINE Zeile schreibt, erübrigt sich das.
- Mit dem "Rest" hast Du vollkommen recht ☼
Ah, ok. Ich war nicht davon ausgegangen, dass das eine syntaktische Rolle spielt. Aber vermutlich geht das nicht anders, ohne Semikola.
Das war schon mal super hilfreich.
Wie könnte ich den Code modifizieren, wenn
- das Datum in einer Zelle erschein soll, sobald ich irgendwo auf der Zeile (oder zumindest in einer Auswahl an Zellen auf der Zeile) etwas ändere? (Nicht wie bisher nur, wenn ich in einer bestimmten Zelle etwas eintrage.)
UND
2. das Datum nur beim allerersten Eintrag erscheinen soll und nicht später neu, wenn ich auf der Zeile nochmal etwas ändere.
Hintergrund:
Ich habe eine Aufgabenliste und dort gibt es eine Spalte "Datum (erstellt am)" ... wenn ich die Zeile später nochmal bearbeite, soll trotzdem das Datum der Erstellung stehen bleiben.
Danke vorab :)
Angenommen, Deine Aufgabenliste steht in den Spalten A bis H und in I soll dann das Datum stehen. Dann teste mal diesen Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range
Set Bereich = Range("A1:H1000") 'Hier den Bereich anpassen
If Not Intersect(Target, Bereich) Is Nothing Then
If WorksheetFunction.CountA(Range(Cells(Target.Row, 1), Cells(Target.Row, 8))) = 1 Then
'Hier die 1 und die 8 anpassen, für die erste und letzte Spalte im Bereich
Cells(Target.Row, 9) = Date 'Die 9 steht hier für Spalte I: Anpassen!
End If
End If
End Sub
Der einfachste Weg ist mit Strg + Punkt.
Ansonsten musst Du dafür ein Makro schreiben und der entsprechenden Zelle den Wert "Date" zuweisen.
Ich brauche auch so etwas, aber immer an der selben Stelle, daher ist das nicht so aufwendig.
Dabei musst Du Deine Tabelle so initialisieren, das sie bei einem Eintrag automatisch recht davon das Datum einträgt.
Das kann man mit solch einen Funktion vor dem Makro:
Private Sub Workbook_Open()
Sheets(1).OnEntry = "DieseArbeitsmappe.NeuBerechnen"
End Sub
Ich mache in Tabelle 1 einen Eintrag und im Hintergrund wird die Tabelle zwei neu sortiert. Es handelt sich hier um Fußballwelt- und Europameisterschaft.
Ja, Strg+. kannte ich leider schon. Ich dachte, man kann's ja mal versuchen, vllt. gibt es ja noch eine einfachere Möglichkeit.
Meinst du mit Makros diese Visual Basic Scripts? Habe das ganze vor etlicher Zeit schnomal gemacht, aber ich denke der Aufwand lohnt hier nicht wirklich. Aber trotzdem danke.
Ja, ein Makro mit VBS.
Das kann schon bei vielen Dingen hilfreich sein.
Ich habe mir ein komplettes Makro für Sudoku geschrieben, weil ich mir nicht immer die Zahlen merken will.
Automatisch nicht aber mit =Heute() geht das
Alles zurückgenommen, außer dass man Plödsinn mit B schreibt ;-)
Aber wenn ich die Funktion Heute() verwende, dann wird nicht das Datum des Zeitpunkts zu dem der Eintrag geschieht vermerkt, sondern es wird jedesmal wenn das Dokument geöffent wird das Datum dieses Tages angezeigt. Kurz: heute zeit immer das heutige Datum und ist deshalb nicht zum speichern eines bestimmten Datums geeignet.
Ich weiß auch, dass es möglich ist, mit Strg+. das heutige Datum fest in eine Zelle einzufügen, aber ich hatte mir erhofft, dass es eine Möglichkeit gibt, dies automatisch geschehen zu lassen, sobald man einen Eintrag macht.
Danke, wenn ich noch das fehlende End If hinzufüge, funktioniert es.
Ich gehe davon aus, wenn dies für eine andere Spalte als Spalte A haben will, müsste in der if-Bedingung Target.Column = X stehen, wobei X den Index der Spalte darstellt und wenn das Datum relativ gesehen in eine andere Zelle geschrieben werden sollte, müsste ich den Offset() entsprechend verändern.
Danke für die Antwort, du hast mir eine Menge Zeit erspart.