Automatische Eingabe einer Dateneingabezeit (Microsoft Excel)
Donna muss ein Protokoll der Aktivitäten führen, die den ganzen Tag über in ihrem Versandzentrum stattgefunden haben. Wenn ein Anruf über Funk eingeht, muss sie dokumentieren, wer, was, warum usw. Sie muss auch die Zeit (im 24-Stunden-Format) dokumentieren, zu der der Anruf eingegangen ist. Donna erledigt dies derzeit auf Papier. Sie möchte ein Arbeitsblatt erstellen, in das sie eingeben kann, und den Zeitstempel automatisch ausfüllen lassen, sobald sie Text in die Zelle daneben in dieser Zeile eingibt. Wenn die Zelle daneben leer ist, soll ihre Zeitstempelzelle leer sein. Auf diese Weise kann sie Zeit sparen, indem sie auf die Uhr schaut, um die Zeit aufzuschreiben.
Nehmen wir an, Sie möchten, dass der Zeitstempel in Spalte A angezeigt wird, und geben Sie Ihr „Wer, Was, Warum“ und andere Informationen ab Spalte B ein. Der einfachste Weg, dies zu tun, ist: Verwenden Sie die integrierte Excel-Verknüpfung zur Eingabe der aktuellen Uhrzeit: Drücken Sie Umschalt + Strg +; (das ist ein Semikolon). Vorausgesetzt, die Zelle ist so formatiert, dass die Zeiten im 24-Stunden-Format angezeigt werden, wird die aktuelle Zeit so angezeigt, wie Sie es möchten.
Wenn Sie einen automatischeren Ansatz wünschen, könnten Sie denken, dass Sie eine einfache Formel in Spalte A verwenden könnten, wie diese:
=IF(B2<>"", NOW(), "")
Dies gibt zwar eine Zeit in Spalte A ein, wenn die entsprechende Zelle in Spalte B etwas enthält, liefert jedoch aufgrund der Funktionsweise der NOW-Funktion keine zufriedenstellenden Ergebnisse. Denken Sie daran, dass die Funktion immer die aktuelle Uhrzeit zurückgibt. Somit wird jedes Mal, wenn das Arbeitsblatt neu berechnet wird, der Inhalt der Zelle B2 überprüft. Wenn dort etwas vorhanden ist, wird die NOW-Funktion aufgerufen, die die aktuelle Zeit der Neuberechnung zurückgibt.
Dies bedeutet, dass sich die in Spalte A angegebene Zeit, die diese Formel enthält, immer ändert. Es wird kein echter Zeitstempel sein.
Sie können die Formel in Spalte A jedoch auf folgende Weise etwas komplexer gestalten:
=IF(B2<>"", IF(A2="",NOW(),A2), "")
Wenn Sie dies zum ersten Mal eingeben, wird wahrscheinlich ein Fehler angezeigt, da die Formel kreisförmig ist. Mit anderen Worten, die Formel verweist auf die Zelle, in der die Formel platziert ist. (In diesem Fall geht die Formel in Zelle A2 und verweist auch auf Zelle A2.) Damit diese Formel ordnungsgemäß funktioniert, müssen Sie die folgenden Schritte ausführen:
-
Zeigen Sie das Dialogfeld Excel-Optionen an. (Klicken Sie in Excel 2007 auf die Schaltfläche Office und dann auf Excel-Optionen. In Excel 2010 oder höheren Versionen wird die Registerkarte Datei des Menübands angezeigt, und klicken Sie dann auf Optionen.)
-
Klicken Sie links auf dem Bildschirm auf Formeln. (Siehe Abbildung 1.)
-
Stellen Sie sicher, dass das Kontrollkästchen Iterative Berechnung aktivieren aktiviert ist.
-
OK klicken.
Wenn Sie jetzt etwas in Zelle B2 einfügen, wird die Zeit automatisch in Zelle A2 eingegeben. Die Zeit wird jedoch nur dort angegeben, wenn die Zelle A2 zuvor leer war. Wenn dies nicht der Fall war (dh es enthielt bereits eine Zeit), bleibt der aktuelle Inhalt der Zelle A2 an Ort und Stelle.
Wenn Sie keine Zirkelverweise zulassen möchten (indem Sie iterative Berechnungen aktivieren), ist der beste Ansatz ein Makro.
Mit dem Ereignis Worksheet_Change können Sie automatisch eine Zeit in Spalte A eingeben, wenn etwas in Spalte B eingegeben wird.
Private Sub Worksheet_Change(ByVal Target As Range) Dim rInt As Range Dim rCell As Range Dim tCell As Range Set rInt = Intersect(Target, Range("B:B")) If Not rInt Is Nothing Then For Each rCell In rInt Set tCell = rCell.Offset(0, -1) If IsEmpty(tCell) Then tCell = Now tCell.NumberFormat = "mmm d, yyyy hh:mm" End If Next End If End Sub
Um das Makro einzurichten, klicken Sie mit der rechten Maustaste auf die Registerkarte Arbeitsblatt und wählen Sie Code anzeigen. Anschließend können Sie das Makro in das angezeigte Codefenster einfügen. (Dadurch wird das Makro in das ThisWorksheet-Modul eingefügt, das erforderlich ist, da es sich um einen Ereignishandler handelt, der ausgeführt wird, wenn sich etwas im Arbeitsblatt ändert.)
Das Makro prüft, ob tatsächlich etwas in Spalte B eingegeben wird. Wenn ja, wird die Variable tCell auf die entsprechende Zelle in Spalte A gesetzt. Wenn sich in dieser Zelle noch nichts befindet, werden das aktuelle Datum und die aktuelle Uhrzeit dort abgelegt . Wenn Sie nur die Zeit möchten, ändern Sie den innersten Teil des Makros wie folgt:
tCell = Time tCell.NumberFormat = "hh:mm"
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (13233) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365.