Beschränkung der Eingabe früherer Daten (Microsoft Excel)
Wenn Sie die Datenüberprüfungsfunktionen von Excel verwenden, können Sie den Inhalt einer Zelle basierend auf dem Inhalt einer anderen Zelle einschränken. Sie können beispielsweise leicht einschränken, was in Zelle A2 eingeht, basierend auf einem Datum in Zelle A1. Befolgen Sie diese Schritte:
-
Wählen Sie Zelle A2 aus.
-
Klicken Sie auf die Registerkarte Daten des Menübands.
-
Klicken Sie in der Gruppe Datentools auf Datenüberprüfung. Excel zeigt das Dialogfeld Datenüberprüfung an.
-
Stellen Sie sicher, dass die Registerkarte Einstellungen angezeigt wird. (Siehe Abbildung 1.)
-
Wählen Sie in der Dropdown-Liste Zulassen die Option Datum.
-
Wählen Sie in der Dropdown-Liste Daten die Option Größer als oder gleich.
-
Geben Sie im Feld Startdatum = A1 ein. Dies teilt Excel mit, dass das Datum größer oder gleich dem Datum in Zelle A1 sein muss.
-
OK klicken.
Jedes Mal, wenn Sie versuchen, ein Datum in Zelle A2 einzugeben, das vor dem Datum in Zelle A1 liegt, zeigt Excel eine Fehlermeldung an und lässt die Eingabe des Datums nicht zu.
Was passiert jedoch, wenn Sie die Daten begrenzen möchten, die in Zelle A1 eingegeben werden können? Wenn Sie beispielsweise das Datum 4/1/20 in Zelle A1 einfügen und sicherstellen möchten, dass das nächste in A1 eingegebene Datum nicht vor 4/1/20 liegt. Wenn Sie ein Datum wie den 15.04.20 in Zelle A1 einfügen, ist dies in Ordnung. Wenn Sie jedoch das nächste Mal ein Datum in Zelle A1 eingeben, möchten Sie es nicht vor dem 15.04.20. Mit anderen Worten, Sie möchten sicherstellen, dass die Zelle A1 nur Daten akzeptieren kann, die nach dem aktuell in A1 aktuellen Datum liegen.
Das ist etwas klebriger. Wenn Sie die obigen Schritte ausführen, aber in Schritt 1 Zelle A1 auswählen, funktioniert die Datenüberprüfung nicht. Warum? Da das Datum, das Sie in Zelle A1 eingeben, immer größer oder gleich dem Datum ist, das Sie in A1 eingeben, wird Excel bei der Datenüberprüfung nicht mit dem vorherigen Datum in A1 verglichen.
Die einzige Möglichkeit, dieses Problem zu lösen, besteht in der Verwendung von zwei Makros. Platzieren Sie zunächst das folgende Makro in einem regulären Modul:
Sub Date_Validation() Dim dteDate As Date Dim strDate As String With Range("A1") ' Memo original date dteDate = CDate(.Text) ' Create date string strDate = Format(dteDate, "m\/d\/yy") With .Validation ' Delete old settings .Delete ' Set new data validation .Add _ Type:=xlValidateDate, _ AlertStyle:=xlValidAlertStop, _ Operator:=xlGreaterEqual, _ Formula1:=strDate .IgnoreBlank = False .InCellDropdown = True .InputTitle = "" .ErrorTitle = "Invalid Date Entry" .InputMessage = "" .ErrorMessage = _ "Date is older than the previous date (" & _ dteDate & ")." .ShowInput = True .ShowError = True End With End With End Sub
Dieses Makro muss von einem anderen Makro aufgerufen werden, das sich im Codefenster des Arbeitsblatts befindet, damit es jedes Mal ausgelöst wird, wenn sich das Arbeitsblatt ändert:
Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Target = Range("A1") Then Date_Validation End Sub
Die Art und Weise, wie diese Makros funktionieren, ist wirklich sehr interessant. Da Sie letzteres im Codefenster des Arbeitsblatts platzieren, wird es jedes Mal ausgelöst, wenn das Arbeitsblatt geändert wird. Wenn die zu ändernde Zelle A1 ist, wird das Makro Date_Validation ausgeführt.
Das Date_Validation-Makro erfasst das Datum aus Zelle A1 und erstellt eine Datenvalidierungsregel für die Zelle. Das ist alles, was es tut – legt eine Datenüberprüfungsregel fest, nach der kein Datum in die Zelle eingegeben werden kann, das vor dem aktuell in der Zelle befindlichen Datum liegt.
Das Schöne am Makro ist, dass nach dem Inkrafttreten der Datenüberprüfungsregel beim nächsten Ändern der Zelle A1 die Datenüberprüfungsregel ausgelöst wird, bevor das Worksheet_Change-Ereignis ausgelöst wird. Somit stellt die Datenvalidierungsregel sicher, dass nur ein Datum eingegeben werden kann, das größer als das aktuelle Datum ist. Sobald die Datenüberprüfung gelöscht ist, sorgt das Makro dafür, dass die Datenüberprüfungsregel zurückgesetzt wird, sodass sie mit dem neu eingegebenen Datum verglichen wird.
_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 (10035) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365. Eine Version dieses Tipps für die ältere Menüoberfläche von Excel finden Sie hier: