Bonjour,
Je dispose d'un UserForm avec 1 vingtaine de checkbox regroupées par thème.
Toutes les checkbox d'un thème déclenchent la même procédure, avec au passage le texte qui devient rouge si décoché (problématique non représentée ci-dessous).
En première intention, c'est codé ainsi:Ce qui est fonctionnel en l'état, mais très fastidieux...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Private Sub xbox01Theme1_Change() Checktheme1 End Sub Private Sub xbox02Theme1_Change() Checktheme1 End Sub Private Sub xbox03Theme1_Change() Checktheme1 End Sub
J'aimerais disposer d'une procédure générique capable d'identifier la checkbox qui a déclenché l'évènement, genre (en macrocode, faudra sûrement jouer avec Me. ):
Cela se fait très bien en delphi car le Sender est disponible, mais je sèche lamentablement sous VBA
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Private Sub xbox_Change() MaBox=Checkbox(Sender) 'Sender=objet qui a déclenché, qu'on transtype Theme=substr(MaBox.Name,12,1) ' n° du thème Select case Theme case 1 Checktheme1 if MaBox.Value then MaBox.ForeColor = RGB(0, 0, 0) else MaBox.ForeColor = RGB(255, 0, 0) end if case 2 Checktheme2 case 3 etc. End Select End Sub
J'avais espoir avec Application.Caller, mais ça ne marche pas avec les userforms.
Qui peut me venir en aide?
Remerciements anticipés.
Partager