Affecter une Macro à plusieurs boutons

Résolu/Fermé
Deudeu79 Messages postés 58 Date d'inscription mercredi 29 avril 2015 Statut Membre Dernière intervention 11 juillet 2016 - 15 avril 2016 à 11:46
Deudeu79 Messages postés 58 Date d'inscription mercredi 29 avril 2015 Statut Membre Dernière intervention 11 juillet 2016 - 18 avril 2016 à 08:31
Bonjour tout le monde,

Voici mon problème,

A l'initialisation d'un UserForm je créer une série de bouton dans ce userform, le nombre de bouton est variable. Mon problème est que quand l'utilisateur clique sur l'un des de c'est bouton j'aimerais effectuer une macro. La macro est la même pour tout les boutons il y a juste un paramètre qui change en fonction du bouton que l'on clique.

Est-il possible de créer une macro pour tout les boutons?
Existe t-il un évènement dans le Userform qui détecte quand l'on appuis sur l'un des boutons?

Voici le code qui me permet de créer la liste des bouton

Private Sub UserForm_Initialize()

    'Déclaration des Variables
    Dim Obj As Control
    Dim I As Integer
    Dim N As Integer
    Dim Colonne As Integer
    
    'initialisation des variables
    I = 1
    N = 1
    Colonne = VariableGlobal.ColonneUserForm
    UserForm10.Caption = VariableGlobal.TitreUserForm
    UserForm10.Height = 40
    UserForm10.Width = 290
    
    'Permet de Passer toute les groupe d'appareil
    While Sheets("Appareil").Cells(2, Colonne).Value <> ""
 
        Set Obj = Me.Controls.Add("forms.CommandButton.1")
        With Obj
            .Name = "Button" & Colonne
            .Object.Caption = "Ajouter " & Sheets("Appareil").Cells(2, Colonne).Value
            .Width = 114
            .Height = 24
        End With
        
        'on effectue un test pour pouvoir passer les bouton sur deux colonnes
        If N Mod 2 = 0 Then
        
            'On place le bouton sur la deuxième colonne
            Obj.Left = 150
            Obj.Top = 36 * (I - 1) + 12
            
            'incrementation de la vraible pour pouvoir mettre les bouton a la ligne du dessous
            I = I + 1
        
        Else
        
            'on passe à la ligne du dessous
            Obj.Top = 36 * (I - 1) + 12
        
            'On place le bouton sur la deuxième colonne
            Obj.Left = 10
            
            'met la taille du Userfom en fonction du nombre de label à afficher
            UserForm10.Height = UserForm10.Height + 36
        
        End If
        
        'Passe au groupe d'appreil suivant
        Colonne = Colonne + 1
        N = N + 1
        
               
    Wend

End Sub


Je vous remercie par avance de votre aide et du temps que vous y avez consacré.

Anthony,
A voir également:

2 réponses

melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
17 avril 2016 à 09:17
bonjour,

je ne sais pas répondre à toutes tes questionsà vrai dire, je ne sais répondre qu'à celle-ci :

Existe t-il un évènement dans le Userform qui détecte quand l'on appuis sur l'un des boutons?

oui ==> sub commandbutton_click
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
17 avril 2016 à 19:06
Bonjour,


un exemple en partant de votre code, ajout d'une procedure pour la collection bouton(dans le VBA de l'UF) et d'un module de classe pour les clics bouton. Dans ce module de classe, mettez l'appel de votre macro a la place de la msgbox

https://www.cjoint.com/c/FDrrfbwezmf
0
Deudeu79 Messages postés 58 Date d'inscription mercredi 29 avril 2015 Statut Membre Dernière intervention 11 juillet 2016 23
18 avril 2016 à 08:31
Bonjour,

Après essaie de votre solution, elle fonctionne parfaitement et je vous en remercie

Cordialement
0