Frage von Michi19756, 77

Hallo, wenn ich in Zelle A1, A2 usw. irgendein Zeichen eingebe, soll in der Zelle daneben (B1, B2 usw.) das Datum und wieder eine daneben die Uhrzeit einfügen?

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von Dryadravisher, 77

Spalte B:

=WENN(A1<>"";HEUTE();"")

Spalte C

=WENN(A1<>"";JETZT();"")

Spalte C musst du dann noch so formatieren, dass nur die Uhrzeit angezeigt wird.

Kommentar von Antitroll1234 ,

Es ändert sich dann aber immer das Datum oder Uhrzeit auf den aktuellen Stand bei Änderung in der Arbeitsmappe oder wenn diese geschlossen und geöffnet wird.

Um die Uhrzeit / Datum zu fixieren muss dies im Anschluss bearbeitet werden (F2+F9+Enter) oder das ganze über ein Makro realisiert werden.

Kommentar von Iamiam ,

@ Antitroll: s.m.AW (die Shortcuts sind weithin unbekannt)

Kommentar von Michi19756 ,

@Dryadravisher: vielen Dank, das war genau so wie ich es wollte, wenn mir jetzt noch jemand das mit den Makros erklären könnte, dass die Uhrzeit fixiert bleibt, dann wäre ich vorerst wunschlos glücklich :-) danke auch an die anderen, das mit den Shortcuts ist auch gut zu wissen!

Expertenantwort
von Iamiam, Community-Experte für Excel, 53

Vllt ist es einfacher, das nicht vollautomatisch, sondern über Shortcuts zu machen:

Nach Eingabe in A

mit → B auswählen, Strg+. drücken, das ergibt das heutige Datum als Fixwert, dann erneut

mit → C auswählen und Strg+: drücken (also Strg+Umsch+.), das ergibt die Jetzt-Uhrzeit als Fixum.

Zellen ggf vorher oder nachher wunschgemäß formatieren (ganze Spalten).

Geht sehr schnell und dürfte mit einiger Übung jedem Makro (das ja erst geschrieben, dann aufgerufen werden muss und dann auch noch kurz zum Ablaufen braucht) überlegen sein.


Kommentar von Iamiam ,

Folgenden Code ins Modulblatt der gewünschten Tabelle setzen (geh aufs Kontextmenü Deines Tabellenreiters und wähle Code anzeigen, unterhalb ggf vorhandener Optionen einkopieren):

Sub Worksheet_change(ByVal Target As Range)

'Sub Datum_Uhrzeit_daneben_setzen(ByVal Target As Range) 'wäre für Knopfzuweisung

if not intersect(Target, Columns(1)) is nothing then

if Target <> "" then Target.offset(0, 1) = date: Target.offset(0, 2) = time

end if

end sub

Spalten B und C wunschgemäß formatieren.

Es treten aber zT unerwartete Effekte auf: Löschst Du einen Eintrag, indem Du eine leere Zelle aus A nach oben kopierst, tritt ein Laufzeitfehler auf, evtl auch noch in anderen Situationen. Der Laufzeitfehler wird im Code (gelb, je nach Einstellung) markiert. Du bekommst ihn (ggf.nach Korrektur) wieder weg, indem Du den Knopf mit dem blauen Viereck (xl2010) drückst.

Und natürlich: Datei als xlsm speichern!

PS: das zweite if ist die einzeilige Variante, die kein End if braucht.

Und die Knopfvariante hab ich jetzt nicht mehr ausprobiert.

Das if not intersect() is nothing verhindert, dass ein Fehler auftritt, wenn zB ein Objekt ausgewählt wurde.

Kommentar von Michi19756 ,

Vielen, vielen Dank! Echt super es funktioniert einwandfrei :-)

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten