Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1924to1928
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
bedingte Format. für %Feld in Textbox
24.03.2023 17:33:08
Fred

Hallo Excel Profis,
ich habe ein Problem mit einer bedingten Formatierung in einer TextBox6
Zuvor lade ich Werte in TextBox6, so:

UserForm1.TextBox6.Value = Format(UserForm1.TextBox6.Value, "0.00 %")

Nun möchte ich, dass wenn der Wert 0 ist, die TextBox6 eine rote HG Farbe bekommt.
mein augenblicklicher Code:
Private Sub TextBox6_Change()
Dim val As Double
val = Val(UserForm1.TextBox6.Value)
If val  0 Then
' Rot
TextBox6.BackColor = &HFF&
Else
TextBox6.BackColor = &H80000001
End If
End Sub

erzeugt die Fehlermeldung: Erwarte Datenfeld

Kann mir bitte jemand dabei helfen, entsprechende bedingte Formatierung umzusetzen?

Gruss
Fred

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: bedingte Format. für %Feld in Textbox
24.03.2023 17:45:30
Daniel
Hi
Wenn du deine Variablen genauso benennst wie die Funktion, kann Excel durcheinander kommen.
Besser sind eigenständige Namen.
Beachte, dass die Funktion VAL immer nach den amerikanischen Vorgaben arbeitet, dh. das Dezimalzeichen ist der Punkt.
Deine Format-Funktion wird aber das Deutsche Komma verwenden.
Du solltest mit CDBL umwandeln, das arbeitet gemäß Ländereinstellung.

Gruß Daniel


AW: bedingte Format. für %Feld in Textbox
24.03.2023 17:55:48
Fred
Hallo Daniel,
ich habe deinen Ansatz mal so übernommen:
   Dim val As Double
   val = CDbl(Me.TextBox6.Value)
   Me.TextBox6.Value = Format(val, "0.00 %")
   
   If val  0 Then
      ' Rot
      Me.TextBox6.BackColor = &HFF&
   Else
      Me.TextBox6.BackColor = &H80000001
   End If
Nun aber kommt die Meldung: Typen unverträglich

Hast du eine weitere Idee?

Gruss
Fred


Anzeige
AW: bedingte Format. für %Feld in Textbox
24.03.2023 18:01:45
Daniel

ich habe noch zu wenig informationen.
Du wirst ja Gründe haben, warum du uns verschweigst, in welcher Zeile der Fehler auftritt und warum diu weiterhin die Variablenbezeichungn val verwendest, obwohl ich dir geschrieben habe, dass du das nicht tun sollst.
Gruß Daniel


AW: bedingte Format. für %Feld in Textbox
24.03.2023 17:52:34
volti
Hallo,

hier mal eine Anregung, wobei ich Deine zweite Farbe jetzt nicht verstanden habe.....

Code:


Private Sub TextBox6_Change() With Me.TextBox6 .BackColor = IIf(val(.Value) < 0, vbRed, RGB(210, 210, 210)) End With End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz



Anzeige
AW: bedingte Format. für %Feld in Textbox
24.03.2023 18:00:03
volti
Nachtrag:

Eigentlich müsste es ja ausreichen, auf das Minuszeichen zu prüfen, denn nur dann ist eine Zahl ja kleiner 0, egal ob AMI odr nicht.

Code:


Private Sub TextBox6_Change() With Me.TextBox6 .BackColor = IIf(.Value Like "-#*", vbRed, RGB(210, 210, 210)) End With End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz



Anzeige
AW: bedingte Format. für %Feld in Textbox
24.03.2023 18:00:53
Fred
Hallo Karl-Heinz,
BOMBE !!
  With Me.TextBox6
      .BackColor = IIf(val(.Value)  0, vbRed, RGB(210, 210, 210))
      .BackColor = IIf(val(.Value) = 0, vbGreen, RGB(210, 210, 210))
  End With
Vielen, Vielen Dank, ich war schon ein bischen am verzweifeln.

Gruss
Fred


AW: bedingte Format. für %Feld in Textbox
24.03.2023 18:09:38
volti
Hallo Fred,

schön, wenn's jetzt klappt aber Deinen Code habe ich nicht verstanden.

Es kommt doch jetzt immer grün oder grau rauskommen und niemals rot, oder?
Denn die erste Bedingung wird ja immer durch die zweite kaputt gemacht.

Gruß KH


Anzeige
AW: bedingte Format. für %Feld in Textbox
24.03.2023 18:08:30
Fred
Hallo Karl-Heinz,
und nu bin ich auf den Trichter gekommen :-)
Private Sub TextBox6_Change()
   With Me.TextBox6
      .BackColor = IIf(Val(.Value)  0, vbRed, vbGreen)
   End With
End Sub
Klappt aber nur bedingt, noch

Gruss
Fred


AW: bedingte Format. für %Feld in Textbox
24.03.2023 18:29:45
Daniel
Hi
bei einer Textbox kann man auch schauen, ob ein "-" drin steht:

Private Sub TextBox6_Change()
   With Me.TextBox6
      .BackColor = IIf(.Text Like "-*", vbRed, vbGreen)
   End With
End Sub
Gruß Daniel


Anzeige
AW: bedingte Format. für %Feld in Textbox
24.03.2023 18:38:12
volti
Hi,

den Vorschlag hatte ich schon gemacht, (wahrscheinlich keiner gelesen), aber noch mit zusätzlichem #, damit es auch wirklich eine Zahl ist und erst rot wird, wenn mindestens eine Ziffer drin ist.

.BackColor = IIf(.Value Like "-#*", vbRed, vbgreen)

Gruß KH


AW: bedingte Format. für %Feld in Textbox
24.03.2023 18:58:57
onur
Private Sub TextBox6_AfterUpdate()
    Dim v
    With Me.TextBox6
        v = -255 * (Val(.Value) >= 0)
        .BackColor = RGB(255 - v, v, 0)
    End With
End Sub

134 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige