Bonjour les amis du Forum,
Sur l'un de mes applicatifs, plusieurs feuilles détiennent des boutons de commandes affectés des mêmes procédures.
Leur nom définit la procédure affectée.
Bouton de commande nommé "Btn_Réso" ==> Procédure Go_stats avec pour argument "Réso"; Btn_Collab ==> Go_stats("Collab"), etc....
Par souci de rigueur, je souhaiterais créer une classe d'objets relative à ces boutons de commande, afin de ne coder qu'une seule procédure via l'évènement Click
Soit
Module de classe
Mon problème réside dans l'instanciation de la classe
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 Option Explicit Public WithEvents Bouton As msforms.CommandButton Private Sub Bouton_Click() Dim spb As Variant Dim chStats As String With Bouton spb = Split(Bouton.Name, "_") chStats = spb(UBound(spb)) Call Go_Stats(chStats) End With End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Dim s as .... For Each s in ...Si je déclare s comme Bouton de commande, comment définir la collection de ceux-ci sur chaque feuille?
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
19
20
21
22 Public Sub déf_classBtn() Dim wks As Worksheet Dim classBtn() As New Class_BtnCmd Dim s As msforms.CommandButton Dim n As Byte n = 0 For Each wks In Worksheets(Array("Stats_Réso", "Stats_Mercatog", "Stats_Marcel")) With wks For Each s In ???? If InStr(s.Name, "Stats") > 0 Then n = n + 1 ReDim Preserve classBtn(1 To n) Set classBtn(n).Bouton = s End If Next s End With Next wks End Sub
J'ai bien essayé OleObjects mais alors l'évènement n'est plus géré.
Merci à vous et bonne journée.
Partager