Colorer intitulé checkbox

babas

XLDnaute Junior
Bonjour à tous,

A nouveau un petit problème.

J'ai un fichier excel avec un userform avec dessus une centaine de checkbox.
J'aimerais que lorsque j'ouvre cet userform si une checkbox est cochée que le texte de cette dernière soit d'une autre couleur. J'ai bien pensé à sa :
Code:
If checkbox1.value = true then ...

mais pour 96 checkbox ça va être long. Je pense à une boucle mais je ne parviens pas à la faire.

Des idées ??

Merci d'avance
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Colorer intitulé checkbox

Bonjour babas,

avec ce code: les checkbox cochés apparaitront en vert à l'ouverture de l'USF
Code:
Private Sub UserForm_Initialize()
For i = 1 To 96
    If Me.Controls("checkbox" & i).Value = True Then Me.Controls("checkbox" & i).BackColor = RGB(0, 255, 0)
Next i
End Sub


à+
Philippe
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Colorer intitulé checkbox

Re,

ou ceci pour la couleur du texte
Code:
Private Sub UserForm_Initialize()
For i = 1 To 96
    If Me.Controls("checkbox" & i).Value = True Then Me.Controls("checkbox" & i).ForeColor = RGB(0, 255, 0)
Next i
End Su


à+
Philippe
 

Staple1600

XLDnaute Barbatruc
Re : Colorer intitulé checkbox

Bonsoir à tous, bonsoir babas, phlaurent55


Une autre possibilité avec un module de classe

Donc un module de classe (ALT+F11 Insertion/Module de classe)
Le nommer: ClsCheckBox
Code:
Option Explicit
Public WithEvents oCBX As MSForms.CheckBox
Private Sub oCBX_Click()
oCBX.ForeColor = IIf(oCBX, vbBlue, vbBlack)
End Sub

Dans le code l'userform
Code:
Dim CBOX() As New ClsCheckBox
Private Sub UserForm_Initialize()
Dim oCL As Control
Dim x As Byte
    For Each oCL In Me.Controls
        If TypeName(oCL) = "CheckBox" Then
        x = x + 1
        ReDim Preserve CBOX(1 To x)
        Set CBOX(x).oCBX = oCL
        End If
    Next oCL
Set oCL = Nothing
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 287
Messages
2 086 823
Membres
103 395
dernier inscrit
Laurent34