Registriert seit: 27.04.2014
Version(en): Privat: Office Home & Business 2019 / Arbeit: MS365
Hallo liebe Excelgemeinde,
noch eine Frage an euch! :)
Mit folgenden Codes:
Code:
Private Sub TextBox5_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox4 = "" Then
TextBox5.BackColor = &HE0E0E0
Else
If TextBox5.Value <> "" Then
TextBox5.BackColor = &HE0E0E0
Else
TextBox5.BackColor = &HC0FFFF
End If
End If
' ' Spalte E:
End Sub
Private Sub TextBox6_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox4 = "" Then
TextBox6.BackColor = &HE0E0E0
Else
If TextBox6.Value <> "" Then
TextBox6.BackColor = &HE0E0E0
Else
TextBox6.BackColor = &HC0FFFF
End If
End If
' ' Spalte F:
End Sub
Private Sub TextBox7_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox4 = "" Then
TextBox7.BackColor = &HE0E0E0
Else
If TextBox7.Value <> "" Then
TextBox7.BackColor = &HE0E0E0
Else
TextBox7.BackColor = &HC0FFFF
End If
End If
' ' Spalte G:
End Sub
färbe ich die Textboxen beim Verlassen der Textboxen je nachdem ob ein Wert drin steht oder nicht!
Kann man das mit einer Schleife machen oder sowas? Und wie müsste es für Comboboxen heißen?
Vielen Dank im Voraus
LG
Alexandra
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo Alexandra,
Du meinst nicht für jede Textbox ein Exit-Ereignis sondern nur eins für Alle? Befinden sich die Textboxen in einer Userform oder einer Tabelle?
Gruß Stefan
Win 10 / Office 2016
Registriert seit: 27.04.2014
Version(en): Privat: Office Home & Business 2019 / Arbeit: MS365
Hallo Steffl,
danke für deine Antwort!
Die textboxen befinden sich alle in eine Userform!
Zum Hintergrund, mit einen anderen Code prüfe ich ob alle Textboxen in der Userform befüLlt sind, wenn leer dann werden die leeren Boxen gelb hinterlegt!
Mit dem Code in diesen Post möchte ich wenn ich eine dieser gelben Textboxen ein Wert eintrage und die Textbox dann verlasse, dass die Textbox dann wieder grau wird, das ist alles! Hoffe ist jetzt verständlicher!
Vielen Dank
VG
Alexandra
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo Alexandra,
da das Exit-Ereignis in einer Klasse nicht geht, habe ich mal als Notlösung den Vorschlag
Code:
Private Sub TextBox5_Exit(ByVal Cancel As MSForms.ReturnBoolean)
prxCysu TextBox5
End Sub
Private Sub TextBox6_Exit(ByVal Cancel As MSForms.ReturnBoolean)
prxCysu TextBox6
End Sub
Private Sub TextBox7_Exit(ByVal Cancel As MSForms.ReturnBoolean)
prxCysu TextBox7
End Sub
Sub prxCysu(txtTextbox As MSForms.TextBox)
MsgBox txtTextbox.Name
If TextBox4.Value = "" Then
txtTextbox.BackColor = &HE0E0E0
Else
If txtTextbox.Value <> "" Then
txtTextbox.BackColor = &HE0E0E0
Else
txtTextbox.BackColor = &HC0FFFF
End If
End If
End Sub
Das heißt neben den vielen Exit-Ereignissen ein Makro, wo die Textbox gefärbt wird.
Gruß Stefan
Win 10 / Office 2016
Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:1 Nutzer sagt Danke an Steffl für diesen Beitrag 28
• cysu11
Registriert seit: 27.04.2014
Version(en): Privat: Office Home & Business 2019 / Arbeit: MS365
Hallo Steffl,
dann werde ich das wohl so machen, ich dachte da gibt es was kürzeres! :)
Vielen lieben Dank
LG
Alexandra
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo Alexndra,
die gleiche Anzahl der Codezeilen wie bei Stefan, aber trotzdem ein klein wenig
einfacher beim Codieren, da Du innerhalb des Ereignisses den Namen nicht anpassen musst:
Code:
Private Sub TextBox5_Exit(ByVal Cancel As MSForms.ReturnBoolean)
färbe (ActiveControl.Name)
End Sub
Private Sub TextBox6_Exit(ByVal Cancel As MSForms.ReturnBoolean)
färbe (ActiveControl.Name)
End Sub
Private Sub TextBox7_Exit(ByVal Cancel As MSForms.ReturnBoolean)
färbe (ActiveControl.Name)
End Sub
Sub färbe(txtBo As String)
If TextBox4.Value = "" Then
Me.Controls(txtBo).BackColor = &HE0E0E0
Else
If Me.Controls(txtBo).Value <> "" Then
Me.Controls(txtBo).BackColor = &HE0E0E0
Else
Me.Controls(txtBo).BackColor = &HC0FFFF
End If
End If
End Sub
Gruß Atilla
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo Atilla,
das geht sogar ohne die Name-Eigenschaft. Einfach den Namen der Textbox durch ActiveControl ersetzen.
Gruß Stefan
Win 10 / Office 2016
Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:1 Nutzer sagt Danke an Steffl für diesen Beitrag 28
• cysu11
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo Stefan,
dann sag das doch gleich
also dann so:
Code:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
färbe
End Sub
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
färbe
End Sub
Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
färbe
End Sub
Sub färbe()
If TextBox4.Value = "" Then
ActiveControl.BackColor = &HE0E0E0
Else
If ActiveControl.Value <> "" Then
ActiveControl.BackColor = &HE0E0E0
Else
ActiveControl.BackColor = &HC0FFFF
End If
End If
End Sub
Gruß Atilla
Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:1 Nutzer sagt Danke an atilla für diesen Beitrag 28
• cysu11
Registriert seit: 27.04.2014
Version(en): Privat: Office Home & Business 2019 / Arbeit: MS365
Hallo Atilla, hallo Steffl,
damit kann ich wunderbar leben, so werde ich es machen!
Vielen vielen Dank euch zwei
LG
Alexandra