AW: Hintergrund mehrerer Textboxen wechseln
08.04.2020 10:08:56
Daniel
Hi
Du könntest den Code in einer Zeile unterbringen.
Dann wird es schon mal deutlich kürzer.
Außerdem könntest du statt dem konkreten Namen den Ausdruck ActiveControl verwenden, dann kannst du die Zeile einfach kopieren; in der Kopfzeile muss natürlich weiterhin der korrekte Textboxname stehen.
Private Sub TextBox46_Change()
ActiveControl.Backcolor = IIF(ActiveControl.Value = "", &H80000018, &H80000004)
End Sub
Eine andere Möglichkeit wäre, dass du das umfärben der Textboxen im MouseMove-Event der Userform vornimmst, also dann wenn der Anwender die Maus über die Userform bewegt.
Hat natürlich den Nachteil, dass das nicht funktioniert, wenn der Anwender die Tastatur zum wechseln benutzt.
Im MouseMove kannst du dann entweder nur das zuletzt bearbeitete Control umfärben:
If ActiveControl.Name like "Text*" Then ActiveControl.Backcolor = IIF(...)
Oder du prüfst in einer Schleife alle Textboxen, um den genannten Nachteil nachträglich zu kompensieren.
dim crt as control
For each crt in me.controls
If crt.Name like "Text*" then crt.Backcolor IIF(crt.value = "", ..., ...)
Next
Gruß Daniel