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

Forumthread: Textfeldfarbe ändern wenn Datum überschritten

Textfeldfarbe ändern wenn Datum überschritten
08.07.2019 14:19:03
Stephan
Hallo zusammen,
ich würde gerne eine Textbox einfärben, sobald ein Wert überschritten wird.
In meinem Fall ist es ein Datum, welches in einer Textbox steht.
Er soll prüfen ob das Datum, welches eingetragen ist älter als ein Jahr ist, wenn dies der Fall ist, möchte ich die Farbe der Box ändern. Ich habe nur keine Ahnung wie ich das bewerkstellige. :D
In Excel hab ich diese Formel dazu genommen.
=UND(I5"";I5 Ggf muss das ja in VBA ähnlich aussehen. Nur weiß ich nicht wie.
Ich hatte mal angefangen, komme aber nicht weiter.
TextBox1_Change()
If Textbox1 > (hier kluger code) Then TextBox1.BackColor = RGB (246, 212, 202)
End Sub
Vielen Dank für eure Hilfe :)
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textfeldfarbe ändern wenn Datum überschritten
08.07.2019 14:21:39
Stephan
Excel Formel hat es abgeschnitten.
=UND(I5"";I5

AW: Textfeldfarbe ändern wenn Datum überschritten
08.07.2019 15:11:35
Torsten
kluger code:

...Date...

AW: Textfeldfarbe ändern wenn Datum überschritten
08.07.2019 15:15:02
Regina
Moin,
so sollte das passen:
If CDate(Me.TextBox1) 

Anzeige
AW: Textfeldfarbe ändern wenn Datum überschritten
08.07.2019 15:29:43
Stephan
Hallo Regina,
ja cool danke, das klappt super. Eine Frage zum Ablauf der Abfrage. (Date) gibt das Aktuelle Datum zurück? CDate(Me.TextBox1) liest den wert aus der Textbox und konvertiert es in ein für die Verarbeitung passendes Format? Mit DateSerial(Year(Date) - 1 rechnet man ein Jahr zurück? Würde dann Theoretisch auch mit Month(Date) -1 funktionieren wenn man nur einen Monat zurück haben möchte?
Wäre cool, wenn ich noch eine kurze Zusammenfassung zur Arbeitsweise des Codes bekomme. Damit ich auch weiß wie er genau arbeitet und ich das nicht nur Blind übernehme. :)
Vielen lieben Dank
Anzeige
AW: Textfeldfarbe ändern wenn Datum überschritten
08.07.2019 15:34:50
Torsten
Du hast das genau richtig erfasst. Das einzige Problem hierbei ist, wenn etwas anderes als ein Datum in die Textbox eingegeben wird. Das sollte man vielleicht noch abfangen:

If Not IsDate(TextBox1.value) Then
MsgBox "Kein gültiges Datum!"
Exit Sub
End If
Gruss Torsten
Anzeige
AW: Textfeldfarbe ändern wenn Datum überschritten
08.07.2019 15:40:49
Regina
Nachtrag:
Mit Dateserial kann man sich ein "VBA-konformes" Datum zurecht bauen. Einfach Cdate(DeineTextbox) mit 01.07.2019 vergleichen würde nicht funktionieren.
Dateserial hat dann die Syntax Year, Month, Day Wenn Du dann da Date einsetzt, zerlegst Du quasi das Datum in seine Bestandteile und kannst auf jeden Bestandteil mit + bzw - Einheiten abziehen bzw. drauf addieren.
Gruß
Regina
Anzeige
AW: Textfeldfarbe ändern wenn Datum überschritten
08.07.2019 15:53:39
Stephan
Vielen Dank ihr beiden. @Torsten - Dafür ist gesorgt. Ein Datum wird nur über den Klick auf ein Button worauf hin sich ein kleiner Kalender öffnet eingegeben.
@Regina, danke für den Code und die Erklärung :)
AW: Textfeldfarbe ändern wenn Datum überschritten
09.07.2019 14:40:44
Stephan
Ich bin jetzt doch auf ein Problem gestoßen. Wenn kein Datum eingetragen ist, was in dem Feld schon vor kommt, dann gibt er mir den Fehler 13 Datentyp Unverträglich aus. Wahrscheinlich weil er ein Datum erwartet, er aber nix finden kann. Kann ich einfach sagen, er soll den Fehler Ignorieren? Also abfangen und sagen "wenn Fehler, nächste?" Oder gibt es eine Elegante Lösung :D
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Textfeldfarbe ändern, wenn Datum überschritten


Schritt-für-Schritt-Anleitung

Um die Farbe einer Textbox in Excel zu ändern, wenn ein bestimmtes Datum überschritten wird, kannst Du VBA (Visual Basic for Applications) verwenden. Folge diesen Schritten:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle "Einfügen" > "Modul".
  3. Füge den folgenden VBA-Code ein:

    Private Sub TextBox1_Change()
       If Not IsDate(TextBox1.Value) Then
           MsgBox "Kein gültiges Datum!"
           Exit Sub
       End If
       If CDate(TextBox1.Value) < DateSerial(Year(Date), Month(Date), Day(Date)) Then
           TextBox1.BackColor = RGB(246, 212, 202) ' Rot
       Else
           TextBox1.BackColor = RGB(255, 255, 255) ' Weiß
       End If
    End Sub
  4. Ersetze TextBox1 mit dem Namen deiner Textbox.

  5. Teste den Code:

    • Schließe den VBA-Editor und teste die Textbox im Excel-Fenster.

Häufige Fehler und Lösungen

  • Fehler 13: Datentyp Unverträglich:

    • Dieser Fehler tritt auf, wenn kein Datum in die Textbox eingegeben wird. Stelle sicher, dass Du die Eingabe überprüfst, bevor Du die Datumsoperationen ausführst. Der oben angegebene Code enthält bereits eine Überprüfung.
  • Textbox bleibt nicht rot:

    • Überprüfe, ob die Bedingung CDate(TextBox1.Value) < DateSerial(...) korrekt ist. Stelle sicher, dass das Datum in der Textbox richtig eingegeben wird.

Alternative Methoden

Falls Du keine VBA-Lösungen verwenden möchtest, kannst Du auch die bedingte Formatierung in Excel nutzen:

  1. Markiere die Zelle oder den Bereich, den Du formatieren möchtest.
  2. Gehe zu Start > Bedingte Formatierung > Neue Regel.
  3. Wähle "Formel zur Ermittlung der zu formatierenden Zellen verwenden".
  4. Gib folgende Formel ein:
    =A1 < HEUTE()
  5. Wähle die Formatierung (z.B. rote Füllfarbe) und klicke auf "OK".

Diese Methode funktioniert gut, um Zellen zu färben, aber nicht für Textboxen.


Praktische Beispiele

  • Beispiel 1: Wenn Du ein Datum in die Textbox eingibst, das älter als ein Jahr ist, wird die Textbox rot gefärbt. Verwende die Funktion DateSerial(Year(Date) - 1, Month(Date), Day(Date)), um ein Jahr zurückzurechnen.

  • Beispiel 2: Du kannst auch die Zelle rot färben, wenn das Datum überschritten ist, indem Du die oben erwähnte bedingte Formatierung anwendest.


Tipps für Profis

  • Mehrere Bedingungen: Du kannst mehrere Bedingungen in Deinem VBA-Code einfügen, um die Textbox in verschiedenen Farben darzustellen, abhängig von verschiedenen Datumsbedingungen.

  • Eingabeverifizierung: Füge eine benutzerfreundliche Eingabeverifizierung hinzu, um sicherzustellen, dass nur gültige Daten verarbeitet werden.

  • Verwende Formeln: Nutze Excel-Formeln in Verbindung mit VBA für komplexere Datumsanalysen.


FAQ: Häufige Fragen

1. Wie kann ich die Farbe ändern, wenn das heutige Datum überschritten ist? Du kannst die Funktion Date verwenden, um das aktuelle Datum zu erhalten und es mit dem Datum in der Textbox zu vergleichen.

2. Was passiert, wenn kein Datum eingegeben wird? Der oben bereitgestellte Code prüft, ob ein gültiges Datum eingegeben wurde. Wenn nicht, wird eine Fehlermeldung angezeigt.

3. Kann ich die Zelle statt der Textbox einfärben? Ja, Du kannst die Formatierung einer Zelle anpassen, indem Du die bedingte Formatierung verwendest oder den VBA-Code entsprechend anpasst.

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