Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Bedingte Formatierung für TextBoxen

Bedingte Formatierung für TextBoxen
Markus
Hallo,
und noch eine (Anfänger-)Frage zu UserFormen: :-)
Ich verwende eine UserForm mit TextBoxen.
Gibt es hier auch die Möglichkeit einer bedingten Formatierung je nach Inhalt, so wie in einer normalen Tabelle ?
Ich suche nach einem Weg, dass sich die Textfarbe ändert, wenn der Inhalt der TextBox z.B. = "XXX" ist.
VG und vielen Dank Euch im Voraus,
Markus
Anzeige
AW: Bedingte Formatierung für TextBoxen
22.07.2012 20:22:12
Hajo_Zi
Hallo Markkus,
If Textbox1="xxx" then
' ' Rot
Textbox1.BackColor = &HFF&
Else
' ' Farblos
Textbox1.BackColor = &H8000000F
End If

Anzeige
AW: Bedingte Formatierung für TextBoxen
22.07.2012 20:45:31
Markus
Hallo Hajo,
auch das klappt bestens !
VG und nochmals danke,
Markus
AW: Bedingte Formatierung für TextBoxen
22.07.2012 20:24:32
Josef

Hallo Markus,
die bedingte Formatierung kann nicht auf Steuerelemente angewandt werden.
In das Modul des UF.
Private Sub TextBox1_Change()
  If TextBox1 = "XXX" Then
    TextBox1.ForeColor = vbRed
  Else
    TextBox1.ForeColor = vbBlack
  End If
End Sub



« Gruß Sepp »

Anzeige
AW: Bedingte Formatierung für TextBoxen
22.07.2012 20:48:44
Markus
Hallo Sepp,
auch dieser Weg klappt super (Hajo hatte kurz vorher geantwortet) - vielen Dank dafür ! :-)
Ich habe noch eine ganz andere Frage zu UserFormen, hast Du dazu zufällig auch eine Idee ?
Ich suche nach einem Weg, eine UserForm durch Doppelklick auf die UserForm (UserForm7) kleiner zu machen und bei erneutem Doppelklick wieder die Ursprungsgröße (93.75 x 900) herzustellen.
Geht so etwas und weisst Du eventuell, wie ?
VG,
Markus
Anzeige
AW: Bedingte Formatierung für TextBoxen
22.07.2012 20:55:37
Josef

Hallo Markus,
da gibt es einige Möglichkeiten.
' **********************************************************************
' Modul: UserForm1 Typ: Userform
' **********************************************************************

Option Explicit

Private Const lngZoom As Long = 50 'Zoomfaktor
Private oldHeight As Long
Private oldWidth As Long

Private Sub UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
  If Me.Zoom = 100 Then
    oldHeight = Me.Height
    oldWidth = Me.Width
    Me.Height = Me.Height * lngZoom / 100
    Me.Width = Me.Width * lngZoom / 100
    Me.Zoom = lngZoom
  Else
    Me.Height = oldHeight
    Me.Width = oldWidth
    Me.Zoom = 100
  End If
End Sub



« Gruß Sepp »

Anzeige
AW: Bedingte Formatierung für TextBoxen
22.07.2012 21:12:12
Markus
Hallo Sepp,
das klappt spitze und das trotz relativ kleinem Code. :-)
Vielen vielen Dank dafür !
VG und einen schönen Abend noch,
Markus
AW: Bedingte Formatierung für TextBoxen
23.07.2012 00:45:39
Tim
Hallo Sepp,
sorry, ich habe noch eine Nachfrage zu diesem Code:
Ich wollte in einer Variante nur die Breite ändern und dabei zwischen 900 und 700 hin und herspringen, habe hier aber wohl etwas falsch gemacht.
Kannst Du mir sagen, wie ich den Code dafür anpassen müsste ?
VG und nochmals danke,
Tim
Anzeige
AW: Bedingte Formatierung für TextBoxen
23.07.2012 07:09:46
Hajo_Zi
Hallo Tim,
Private Sub UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
If Me.Width = 900 Then
Me.Width = 700
Else
Me.Width = 900
End If
End Sub
Gruß Hajo
Anzeige
AW: Bedingte Formatierung für TextBoxen
23.07.2012 08:29:42
Tim
Hallo Hajo,
vielen Dank dafür !
Genau so hatte ich es auch probiert.
Das funktioniert auch, allerdings nie beim ersten Mal. Hast
Die UserForm öffnet sich automatisch beim Öffnen der Tabelle mit Breite 900.
Klicke ich dann doppelt auf sie, wird die Breite nur minimal kleiner.
Ab dem 2. Doppelklick funktioniert dann alles so, wie es sein soll.
Du eine Idee, woran das liegen kann ?
VG,
Tim
Anzeige
AW: Bedingte Formatierung für TextBoxen
23.07.2012 08:54:17
Tim
Hallo Hajo,
ich habe den Fehler gefunden, die UserForm ist plötzlich 901 breit. Da muss ich wohl einmal geklickt haben, ohne es zu merken.
Mit Anpassung auf 900 klappt alles bestens !
VG und vielen Dank nochmal,
Tim
und noch eine Variante ...
23.07.2012 08:04:46
Matthias
Hallo Tim
Geht auch als Einzeiler:
Me.Width = IIf(Me.Width = 700, 900, 700)
Gruß Matthias
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Bedingte Formatierung für TextBoxen in Excel


Schritt-für-Schritt-Anleitung

Um eine bedingte Formatierung für TextBoxen in einer Excel-UserForm zu implementieren, kannst du folgenden VBA-Code verwenden:

  1. Öffne den VBA-Editor (Alt + F11).
  2. Wähle die UserForm aus, die die TextBox enthält.
  3. Doppelklicke auf die TextBox, um das Code-Fenster zu öffnen.
  4. Füge den folgenden Code ein:
Private Sub TextBox1_Change()
    If TextBox1 = "XXX" Then
        TextBox1.ForeColor = vbRed  ' Textfarbe rot
    Else
        TextBox1.ForeColor = vbBlack  ' Textfarbe schwarz
    End If
End Sub

Dieser Code ändert die Textfarbe abhängig vom Inhalt der TextBox. Wenn der Inhalt "XXX" ist, wird die Farbe rot, andernfalls bleibt sie schwarz.


Häufige Fehler und Lösungen

  • Problem: Die bedingte Formatierung funktioniert nicht.

    • Lösung: Stelle sicher, dass du den Code in das richtige Modul (UserForm) eingefügt hast. Bedingte Formatierung kann nicht direkt auf Steuerelemente angewandt werden; der Code muss im Modul der UserForm stehen.
  • Problem: Die TextBox bleibt farblos.

    • Lösung: Überprüfe die Bedingungen im Code. Vergewissere dich, dass der Vergleich mit dem Text richtig ist (z.B. Groß- und Kleinschreibung).

Alternative Methoden

Eine andere Möglichkeit, die bedingte Formatierung für TextBoxen zu erreichen, ist die Verwendung des BackColor-Eigenschafts, um den Hintergrund der TextBox zu ändern. Hier ein Beispiel:

Private Sub TextBox1_Change()
    If TextBox1 = "XXX" Then
        TextBox1.BackColor = &HFF& ' Hintergrundfarbe rot
    Else
        TextBox1.BackColor = &H8000000F ' Farblos
    End If
End Sub

Hierbei wird der Hintergrund der TextBox rot, wenn der Inhalt "XXX" ist.


Praktische Beispiele

Ein weiteres Beispiel für eine UserForm könnte die Steuerung der Größe durch Doppelklick sein. Hier ist ein Codebeispiel, um die Breite der UserForm zwischen 700 und 900 zu ändern:

Private Sub UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    If Me.Width = 900 Then
        Me.Width = 700
    Else
        Me.Width = 900
    End If
End Sub

Dieser Code ermöglicht es, die UserForm durch Doppelklick zu vergrößern oder zu verkleinern.


Tipps für Profis

  • Nutze Bedingte Formatierung für verschiedene Bedingungen, um die Benutzerfreundlichkeit deiner Formulare zu verbessern.
  • Experimentiere mit verschiedenen Farben und Stilen, um die Lesbarkeit und Benutzererfahrung zu optimieren.
  • Halte deinen Code so kompakt wie möglich. Einzeiler wie Me.Width = IIf(Me.Width = 700, 900, 700) können viel Platz sparen.

FAQ: Häufige Fragen

1. Kann ich mehrere TextBoxen gleichzeitig formatieren?
Ja, du kannst die Formatierung in einer Schleife auf mehrere TextBoxen anwenden.

2. Wie kann ich die bedingte Formatierung zurücksetzen?
Du kannst eine zusätzliche Bedingung im Code hinzufügen, die die Textfarbe oder den Hintergrund auf die Standardwerte zurücksetzt, wenn die TextBox leer ist.

If TextBox1 = "" Then
    TextBox1.ForeColor = vbBlack
End If

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige