Verhindern automatischer Änderungen der Datumsformatierung (Microsoft Excel)
In einem Arbeitsblatt hat Carol eine Zelle, die mit „Buchhaltung“ formatiert ist. Wenn jemand versehentlich ein Datum (MM / TT / JJ) in diese Zelle eingibt, ändert Excel automatisch die Formatierung der Zelle, um das Datum korrekt anzuzeigen. Wenn sie jedoch erneut versucht, einen Dollarbetrag in diese Zelle einzugeben, wird das Format „Buchhaltung“ nicht wiederhergestellt. Die Zelle bleibt im Datumsformat.
Dies ist in Ordnung, wenn der Benutzer den Fehler sieht und korrigiert. Dies geschieht jedoch häufig in einer Vorlage mit „Boilerplate“ -Text, und die Vorlage ist ohne Zugriff auf Formatierungszellen geschützt. Carol fragt sich, ob jemand Ideen hat, warum dies passiert und wie man es korrigiert.
Gehen Sie folgendermaßen vor, um eine schnelle Änderung der Formatierung in einfachen Arbeitsblättern zu verhindern:
-
Zeigen Sie das Dialogfeld Excel-Optionen an. (Klicken Sie in Excel 2007 auf die Schaltfläche Office und dann auf Excel-Optionen. Zeigen Sie in Excel 2010 oder einer späteren Version die Registerkarte Datei des Menübands an und klicken Sie dann auf Optionen.)
-
Klicken Sie auf der linken Seite des Dialogfelds auf Erweitert.
-
Scrollen Sie zum Ende der erweiterten Optionen. (Siehe Abbildung 1.)
-
Stellen Sie sicher, dass die Option Übergangsformeleintrag ausgewählt ist.
-
OK klicken.
Diese spezielle Option veranlasst Excel, eingegebene Informationen auf dieselbe Weise wie Lotus 1-2-3 auszuwerten (zu analysieren). Dies bedeutet, dass Datumsangaben nicht mehr als Datumsangaben, sondern als Formel analysiert werden. Wenn also jemand 11-16-13 in eine Zelle eingibt, wird diese als „elf minus sechzehn minus dreizehn“ analysiert und in der Zelle als -18 angezeigt. Da es nicht als Datum analysiert wurde, bleibt das Abrechnungsformat wie gewünscht der Zelle zugeordnet.
Dieser Ansatz weist jedoch Nachteile auf. Da Excel anschließend alle Einträge gemäß den Lotus-Regeln analysiert, können Ihre Benutzer zu dem Schluss kommen, dass Ihr Arbeitsblatt nicht ordnungsgemäß funktioniert, da es nicht denselben Regeln folgt wie andere Excel-Arbeitsblätter. Aus diesem Grund habe ich erwähnt, dass dieser Ansatz für einfache Arbeitsblätter akzeptabel sein kann. Sie müssen feststellen, ob Ihr Arbeitsblatt qualifiziert ist.
Wenn Sie die Analyse nicht ändern möchten, können Sie Ihrem Arbeitsblatt am besten einige Ereignishandler hinzufügen. Sie können beispielsweise einen Ereignishandler einfügen, der überprüft, wo Daten eingegeben wurden, und sicherstellt, dass alle Änderungen an diesen Zellen die gewünschte Formatierung beibehalten.
Private Sub Worksheet_Change(ByVal Target As Range) Dim rngToCheck As Range Set rngToCheck = Range("E2") If Intersect(Target, rngToCheck) Then rngToCheck.NumberFormat = _ "_($ #,##0.00_);_($ (#,##0.00);_($* "" - ""??_);_(@_)" End If End Sub
In diesem Beispiel ist die Zelle, in der Sie das Buchhaltungsformat beibehalten möchten, E2, wie es der Variablen rngToCheck zugewiesen ist. Wenn Sie das Format einem anderen Zellbereich aufzwingen möchten, ändern Sie einfach die Zuweisungszeile.
Wenn Sie etwas mehr Flexibilität wünschen, können Sie einen anderen Satz von Ereignishandlern verwenden. In den folgenden Beispielen werden beispielsweise die Ereignisse SelectionChange und Change des Arbeitsblattobjekts verwendet. Sie führen zu etwas, das ein bestimmtes Format nicht so sehr erzwingt, aber verhindert, dass die Formatierung einer Zelle gegenüber dem vorherigen Format geändert wird. Somit schützt dieser Ansatz jede Formatierung und erzwingt nicht nur ein Buchhaltungsformat.
Dim nFormat As String Private Sub Worksheet_Change(ByVal Target As Range) Dim rngToCheck As Range Set rngToCheck = Range("E2") If Intersect(Target, rngToCheck) Then rngToCheck.NumberFormat = nFormat End If End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) nFormat = Target.NumberFormat End Sub
Der SelectionChange-Ereignishandler wird zuerst ausgelöst und setzt das vorhandene Format in die Variable nFormat. Anschließend wird der Change-Ereignishandler ausgelöst und die Formatierung auf das Original zurückgesetzt.
Ein anderer Ansatz, den Sie versuchen könnten, ist die Datenvalidierung. Dieser Ansatz erfordert keine Makros und ist daher geeignet, wenn Ihre Arbeitsmappe von Personen verwendet wird, auf deren System möglicherweise Makros deaktiviert sind.
Befolgen Sie diese allgemeinen Schritte:
-
Wählen Sie die Zelle (n) aus, deren Formatierung Sie erzwingen möchten.
-
Zeigen Sie die Registerkarte Daten des Menübands an.
-
Klicken Sie in der Gruppe Datentools auf das Datenüberprüfungstool. Excel zeigt das Dialogfeld Datenüberprüfung an.
-
Wählen Sie in der Dropdown-Liste Zulassen die Option Benutzerdefiniert. (Siehe Abbildung 2.)
-
Geben Sie im Feld Formel Folgendes ein: = CELL („Format“, B2) = „C2“. Stellen Sie andere Einstellungen für die Datenüberprüfung wie gewünscht ein.
-
OK klicken.
Die Formel (Schritt 5) überprüft die Formatierung der Zelle und erlaubt oder verbietet die Eingabe basierend auf dieser Formatierung. In der angegebenen Formel ist Format C2 der interne Name für das Buchhaltungsformat. Sie können die Codes in der Formel leicht in ein anderes Format ändern, z. B. „, 2“, „C2“, „C0“, „C2-“ oder „C0-„, je nach Ihren Vorlieben. Der einfachste Weg, um herauszufinden, welches Format Sie verwenden sollten, besteht darin, eine Zelle wie gewünscht zu formatieren, bevor Sie die Datenüberprüfungsregel anwenden. (Angenommen, Sie wenden die Formatierung auf Zelle L13 an.) Sie können diese Formel dann in einer anderen Zelle verwenden, um zu sehen, welches Format Excel Ihrer Meinung nach angewendet hat:
=CELL("format",L13)
_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 (12729) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365.