IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Utilisation de boutons dynamiques [XL-2007]


Sujet :

Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Septembre 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 9
    Points : 6
    Points
    6
    Par défaut Utilisation de boutons dynamiques
    Bonjour,

    Je souhaite créer un formulaire UserForm sur lequel se trouve un certains nombres (variable) de boutons paramétrables depuis une feuille Excel.

    J'ai déjà réussi à créer les boutons.

    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
    23
    24
    25
    26
    for i = 1 To Nbouton
     
        couleurFond = Cells((Caisse.numBouton - 1) * nbrOptionBouton + posCouleurFond, i * 3 + 3).Interior.Color
        couleurTexte = Cells((Caisse.numBouton - 1) * nbrOptionBouton + posCouleurTexte, i * 3 + 3).Interior.Color
     
        If i Mod X = 0 Then
            posX = X
        Else
            posX = i Mod X
        End If
     
        posY = Application.WorksheetFunction.RoundUp(i / X, 0)
     
    Set sousBouton(i) = Controls.Add("Forms.CommandButton.1")
        With sousBouton(i)
            .Name = "sousBouton" & i
            .Caption = Cells((Caisse.numBouton - 1) * nbrOptionBouton + posCaptionBouton, i * 3 + 3)
            .Left = interBouton + (interBouton + wthBouton) * (posX - 1)
            .Top = interBouton + (interBouton + hgtBouton) * (posY - 1)
            .Width = wthBouton
            .Height = hgtBouton
            .BackColor = couleurFond
            .ForeColor = couleurTexte
        End With
     
    Next
    A présent, je souhaite affecter des actions à ses boutons mais lorsque j'écris le code ci-dessous, rien ne se passe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub sousBouton1_Click()
     
    sousBoutons_Click (1)
     
    End Sub
     
    Private Sub sousBouton2_Click()
     
    sousBoutons_Click (2)
     
    End Sub
     
    ...
    Avez-vous une idée svp ?

    Merci d'avance,
    Cordialement,
    --
    GLMDRX

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Bonjour,

    Tu dois créer un module de classe pour gérer les événements des boutons.

    Par exemple, dans un module standard, tu mets ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Coll As Collection
    Dans le Userform
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    Private Sub UserForm_Initialize()   
        PlacerBoutons
     
    End Sub
     
    Sub PlacerBoutons()
        Dim I As Long, J As Long, Idx As Long
        Dim Gauche As Long, Haut As Long
        Dim Obj As Control
        Dim Cl As clsBouton
     
        Set Coll = New Collection
     
        Gauche = 18
        Haut = 36
     
        For I = 0 To 5
            For J = 0 To 6
                Idx = Idx + 1
                Set Obj = Me.Controls.Add("forms.CommandButton.1")
                With Obj
                    .Name = "Bouton" & Idx
                    .Left = Gauche + (J * 24)
                    .Top = Haut + (I * 24)
                    .Width = 24
                    .Height = 24
                    .Font.Bold = True
                    .Font.Size = 8
                    .Caption = Idx
                End With
     
                Set Cl = New clsBouton
                Set Cl.Bouton = Obj
                Coll.Add Cl
            Next
        Next
    End Sub
    Et finalement, dans le module de classe (nommé ici clsBouton)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public WithEvents Bouton As MSForms.CommandButton
     
    Private Sub Bouton_Click()
        MsgBox Bouton.Name & ": " & Bouton.Caption
     
    End Sub
    MPi²

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Septembre 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Merci.

    Apres beaucoup de recherche, c'est exactement ce que j'ai fais.

    Je cide marche super.

    Merci beaucoup.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/01/2009, 04h18
  2. changer image d'un bouton dynamiquement
    Par Dnx dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/11/2005, 13h03
  3. [VB.Net] usercontrol static et bouton dynamique
    Par krest dans le forum ASP.NET
    Réponses: 19
    Dernier message: 26/07/2005, 17h43
  4. [Forms] Bouton dynamique
    Par lafouine dans le forum Forms
    Réponses: 4
    Dernier message: 20/07/2005, 10h24
  5. Réponses: 2
    Dernier message: 20/01/2004, 14h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo