Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zellformat per VBA prüfen

Zellformat per VBA prüfen
Thomas
Hallo an alle fleißigen Helfer.
Ich möchte überprüfen ob in einer Zelle (z.B. A1) ein Datum eingetragen wurde. Die Prüfung soll per VBA funktionieren. Sobald etwas anderes als ein Datum in Format TT.MM.JJJJ eingegeben wurde soll eine MsgBox mit Fehlermeldung erscheinen. Die Prüfung soll erst nach Klick auf einen CommandButton erfolgen.
Das selbe würde mich dann für das Uhrzeitformat (HH:MM) und das Format "Bruch zweistellig" interessieren, wenn das machbar ist.
Kann mir jemand ein Beispielcode erstellen, der diese Prüfungen durchführt? Ich selbst habe es nach langem suchen nur auf Zahlen (IsNumeric) gebracht.
Vielen Dank an alle die sich die Zeit nehmen!
Gruß Thomas
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zellformat per VBA prüfen
15.04.2010 06:45:22
Hajo_Zi
Hallo Thomas,
die grundsätzliche Prüfung IsDate(Range("A1")) und danach Range("A1").text prüfen ob die Pukte und der Doppelpunkt an der richtigen Stelle. Warum Du dieses Format prüfen mußt ist mir nicht klar, weise der Zelle doch einfach Dein gewünschtes Format zu, falls Istdate=True

Anzeige
AW: Zellformat per VBA prüfen
15.04.2010 13:09:23
Thomas
Hallo Hajo,
das gewünschte Format ist zugewiese und sogar die Eingabemöglichkeiten durch die Gültigkeit begrenzt. Allerdings darf ich keinen Blattschutz setzen und so kommt es vor, dass manchmal neugierige Benutzer die Formatierung ändern. Um aber sicher zu gehen das alles richtig ist, soll eine Prüfung vor dem Drucken durchgeführt werden. Das Datum ist für Terminberechnungen von Bedeutung, deshalb darf dort nichts anderes drin sein als das Datum.
Danke für deine Hilfe.
Gruß Thomas
Anzeige
etwas aufwändiger mit Like
15.04.2010 08:01:41
Tino
Hallo,
etwas aufwändiger kannst Du es so prüfen.
Ist nur ein Beispiel:
Dim strText$
strText = Range("A1").Text

If Not strText Like "[0-3][0-9].[0|1][0-9].[1|2][9|0][0-9][0-9]" Or Not IsDate(strText) Then
    MsgBox "Format Datum falsch Soll: TT.MM.JJJJ"
End If

Es wird jede einzelne Zahl geprüft ob diese in einem bestimmten Bereich liegt.
Mit der Uhrzeit kannst Du es ähnlich machen.
Schau auch mal in der Hilfe unter Like (Operator).
Gruß Tino
Anzeige
AW: etwas aufwändiger mit Like
15.04.2010 13:11:21
Thomas
Hallo Tino,
danke dafür. Damit kann ich sicher etwas anfangen. Werde es später testen.
Gruß Thomas
AW: etwas aufwändiger mit Like
15.04.2010 13:28:45
Thomas
Hallo Tino,
hab das jetzt mal getestet, es klappt super! Für die Uhrzeit hab ich es auch angepasst.
Vielen Dank, Gruß Thomas
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Zellformatierung und Prüfungen mit VBA in Excel


Schritt-für-Schritt-Anleitung

Um in Excel per VBA zu prüfen, ob in einer Zelle (z.B. A1) ein Datum im Format TT.MM.JJJJ eingegeben wurde, kannst Du folgenden Code verwenden. Dieser prüft, ob das eingegebene Format korrekt ist und gibt eine Fehlermeldung aus, falls dies nicht der Fall ist. Du benötigst dafür einen CommandButton, um die Prüfung auszulösen.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu (Einfügen > Modul).
  3. Kopiere den folgenden Code in das Modul:
Sub PruefeDatum()
    Dim strText As String
    strText = Range("A1").Text

    If Not strText Like "[0-3][0-9].[0|1][0-9].[1|2][9|0][0-9][0-9]" Or Not IsDate(strText) Then
        MsgBox "Format Datum falsch. Soll: TT.MM.JJJJ"
    End If
End Sub
  1. Füge einen CommandButton in Dein Excel-Blatt ein und verlinke den Button mit dem PruefeDatum-Makro.
  2. Klicke auf den Button, um die Prüfung durchzuführen.

Häufige Fehler und Lösungen

  1. Fehler: MsgBox erscheint nicht
    Lösung: Stelle sicher, dass das Makro korrekt mit dem CommandButton verknüpft ist. Du kannst dies überprüfen, indem Du mit der rechten Maustaste auf den Button klickst und Makro zuweisen wählst.

  2. Fehler: Format wird nicht richtig erkannt
    Lösung: Achte darauf, dass die Zelle A1 tatsächlich im Textformat ist. Manchmal können Excel-Formate wie Datum das Ergebnis beeinflussen. Setze A1 auf „Text“, bevor Du die Prüfung durchführst.


Alternative Methoden

Wenn Du eine andere Methode zur Prüfung von Datumsformaten verwenden möchtest, kannst Du die eingebaute Funktion IsDate in Kombination mit anderen Logikoperatoren nutzen. Diese Methode ist weniger spezifisch, aber einfacher:

If Not IsDate(Range("A1").Value) Then
    MsgBox "Bitte gib ein gültiges Datum ein."
End If

Diese Variante prüft, ob der Inhalt von A1 ein Datum ist, ohne das spezifische Format zu überprüfen.


Praktische Beispiele

Beispiel für die Prüfung auf Uhrzeit
Um zu prüfen, ob in A1 eine Uhrzeit im Format HH:MM eingegeben wurde, kannst Du folgenden Code verwenden:

Sub PruefeUhrzeit()
    Dim strText As String
    strText = Range("A1").Text

    If Not strText Like "[0-2][0-9]:[0-5][0-9]" Or Not IsDate(strText) Then
        MsgBox "Format Uhrzeit falsch. Soll: HH:MM"
    End If
End Sub

Beispiel für die Prüfung auf Brüche (z.B. 1/2)
Wenn Du überprüfen möchtest, ob der Inhalt in A1 ein Bruch ist, kannst Du:

Sub PruefeBruch()
    Dim strText As String
    strText = Range("A1").Text

    If Not strText Like "[1-9]/[1-9]" Then
        MsgBox "Format Bruch falsch. Soll: z.B. 1/2"
    End If
End Sub

Tipps für Profis

  • Nutze die Application.OnTime-Methode, um eine geplante Prüfung durchzuführen, z.B. beim Drucken des Dokuments.
  • Du kannst auch die Worksheet_Change-Ereignisprozedur verwenden, um die Eingaben in Echtzeit zu überprüfen, während der Benutzer Daten eingibt.
  • Achte darauf, die Eingabemöglichkeiten mit Datenvalidierung zu steuern, um die Benutzerfreundlichkeit zu erhöhen.

FAQ: Häufige Fragen

1. Wie kann ich die Prüfung für mehrere Zellen gleichzeitig durchführen?
Du kannst eine Schleife verwenden, um durch die Zellen zu iterieren und die Prüfung für jede Zelle auszuführen.

2. Was mache ich, wenn andere Formate ebenfalls akzeptiert werden sollen?
Erweitere die If-Bedingungen im Code, um zusätzliche Formate zu überprüfen. Achte darauf, dass die Logik korrekt ist, um Missverständnisse zu vermeiden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige