Bonjour Hervé, Arnaud, Le Forum
Oui tu peux bien sûr, mais en fait il te faut ruser un peu....
Soit tu as nommé tes Labels d'une manière conventionnelle exemple :
Lbl001, Lbl002, Lbl003, Lbl004,.......... Lbl046,... Lbl101,....Lbl999, ... (lol),
Et tu fais une boucle comme ceci :
Private Sub CommandButton1_Click()
Dim CTRL As Control
Dim TheNum As Integer '(Byte suffit si 46 Labels)
For Each CTRL In Me.Controls
If TypeOf CTRL Is MSForms.Label Then
TheNum = Val(Right(CTRL.Name, 3))
Select Case TheNum
Case 1 To 30
CTRL = ""
Case 31 To 46
CTRL.ForeColor = &HFF0000
Case Else
CTRL.Font.Italic = True
End Select
End If
Next
End Sub
On peut aussi procéder complétement différemment grace à une Excellente astuce de Ti qui me l'a fait découvrir il y a un bail, et qui me sert quasiment dans tous mes UserForms, c'est la Proriété Tag (En Mode Design du VBE, Fenêtre Propriété du Label => Propriété : "TAG" ... Indiquer par Exemple "LblZoneA" pour tous les Labels qui doivent avoir une Action Commune et "LblZoneB" pour une autre Série de Labels qui ont une autre Action, puis rien pour les autres Labels ...
On peut alors faire ceci
Private Sub CommandButton2_Click()
Dim CTRL As Control
For Each CTRL In Me.Controls
If CTRL.Tag = "LblZoneA" Then
CTRL = ""
ElseIf CTRL.Tag = "LblZoneB" Then
CTRL.ForeColor = &HFF0000
End If
Next CTRL
End Sub
Ce qui est interressant avec cette méthode "Tag de Ti" c'est que l'on pourrait (sous réserve que les controls acceptent les méthodes) faire une seule boucle pour en même temps intervenir sur des Labels et des CheckBox (par exemple) si tous on été "Tagué" avec le même "Tag" ou une portion du Tag...
Exemple on a "Tagué" les Labels "LblZoneA" et d'autres "LBLZoneB" puis des CheckBoxs "CbxZoneA" et d'autres "CbxZoneB" ... ce genre de macro fera le reste :
Private Sub CommandButton2_Click()
Dim CTRL As Control
For Each CTRL In Me.Controls
If (Right(CTRL.Tag, 5) = "ZoneA" Then
CTRL = ""
ElseIf (Right(CTRL.Tag, 5) = "ZoneB" Then
CTRL.ForeColor = &HFF0000
End If
Next CTRL
End Sub
On notera que la Propriété "Caption" n'étant pas celle par défaut d'une CheckBox j'ai été obligé de l'indiquer....
Et bien entendu, avec ces moyens que je dévoile ici, on peut faire un "Mix" des deux méthodes, ce qui rend vraiment un UserForm interactif... pour s'en rendre compte il y a une démo assez impressionnante que j'avais faite :
=> Fichier Téléchargeable Ce lien n'existe plus
=> Fil de Discussion Lien supprimé
Il y a eu ensuite plusieurs version d'ailleurs de cette démo, que hélas, je ne suis jamais parvenu à faire correspondre aux besoins de l'intervenant car il m'a fait partir sur des mauvaises bases de développement, mais à titre de Démo il y a vraiment de quoi faire !!!
Voilà Herve, je pense que ta question subsidiare sera pleinement satisfaite !!
Bonne Appétit
@+Thierry