Mah... queste interfacce personalizzate ognuno le interpreta come vuole (a meno che non siano per uso personale)
Io avrei mantenuto l'idea di Enabled /Disabled in funzione della CheckBox, poi quando l'utente preme "Carica" (o come si chiama il comando che trasferisce i dati) vado a controllare che i prerequisiti siano tutti rispettati altrimenti coloro in Giallo le anomalie (tanto questa fase non puoi evitartela, se vuoi essere sicuro di quel che fai).
Comunque...
-il colore di sfondo si imposta con "BackColor"; es
.BackColor = RGB(0, 255, 0)(se invece preferisci le costanti gia' impostate, vedi
https://docs.microsoft.com/en-us/office ... lrgbcolor)-se vuoi aggiungere un veloce Blink al colore di sfondo:
a) Aggiungi questo codice in un Modulo standatd o il Modulo di codice della Userform:
- Codice: Seleziona tutto
Sub RFlash(ByRef CCtrol As Control)
If Not CCtrol Is Nothing Then
CCtrol.BackColor = RGB(255, 255, 100)
myWait (0.05) 'Secondi di permanenza
CCtrol.BackColor = RGB(255, 100, 100)
myWait (0.05)
CCtrol.BackColor = RGB(255, 255, 100)
myWait (0.05)
CCtrol.BackColor = RGB(255, 100, 100)
myWait (0.05)
CCtrol.BackColor = RGB(255, 255, 100)
End If
End Sub
Sub myWait(myStab As Single)
Dim myStTiM As Single
'
myStTiM = Timer
Do 'wait myStab
DoEvents
If Timer > myStTiM + myStab Or Timer < myStTiM Then Exit Do
Loop
End Sub
Modifica all'interno della Sub RFlash il numero di sequenze, il colore RGB e il tempo di permanenza per ottenere l'effetto voluto e il colore finale
Poi quando vuoi il lampeggiamento userai
- Codice: Seleziona tutto
Call RFlash(TextBox2)
Esempio, partendo dal tuo codice:
- Codice: Seleziona tutto
Private Sub CheckBox1_Click()
If CheckBox1 = True Then
TextBox2.Enabled = True
Call RFlash(TextBox2)
TextBox2.SetFocus
Else
TextBox2.Enabled = False
TextBox2.BackColor = RGB(230, 230, 230) 'grigio leggero
End If
End Sub
Ciao