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

Macros et VBA Excel Discussion :

Création au code de plusieurs boutons ActiveX et gestion de leur réponses [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2013
    Messages : 46
    Par défaut Création au code de plusieurs boutons ActiveX et gestion de leur réponses
    Bonjour,

    J'aimerai créer une fonction qui génère plusieurs boutons ActiveX et qui leur associe, à chacun, un nom ainsi qu'une fonction de CallBack.

    Pour la 1ere partie, j'utilise le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Creat_Boutons()
    Dim NouveauBouton As OLEObject
    Dim Ind As Integer
     
    For Ind = 1 To 7
    '   Ajoute un bouton de Commande
        Set NouveauBouton = Sheets("Feuil1").OLEObjects.Add("Forms.CommandButton.1")
        With NouveauBouton
            .Object.Caption = "Bouton" & Ind
            .Name = "Bouton" & Ind
        End With
    Next Ind
    End Sub
    J'aimerai ensuite pouvoir associer à chacun de ces boutons, une fonction du type Bouton&ind_click() associée à mes boutons.

    Je ne pense pas que passer par les commandes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With ThisWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule
          NextLine = .CountOfLines + 1
          .InsertLines NextLine, Code
        End With
    ou mon code serait programmé soit intéressant puisque j'aimerai que tous mes boutons génèrent là même réponse à l'indice près:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ' (Exemple simple:)
     MsgBox "Le bouton choisi est le" & ind
    Merci de vos réponses.
    EB

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Plus facile d'utiliser les boutons de formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub essai()
    MsgBox "Le bouton choisi est le " & Replace(Application.Caller, "Bouton", "")
    End Sub
    Sub essai2()
        PosG = 100
        PosH = 100
        Hauteur = 50
        Longueur = 50
       Set btn = ActiveSheet.Buttons.Add(PosG, PosH, Longueur, Hauteur)
          btn.OnAction = "essai"
          btn.Caption = "Bouton"
          btn.Name = "Bouton10"
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2013
    Messages : 46
    Par défaut
    Bonjour,

    Merci de ta réponse.
    (A vrai dire, je m'y attendait un peu car c'était une solution vers laquelle je m'étais déjà orienté.)

    j'ai pourtant un problème avec ce type d'Objets (Buttons, ListBoxes....) car il n'est (appartement) pas possible d'utiliser leurs propriétés.

    En fait, je veut que chaqun de mes boutons me crée 3 listboxes distinctes dont je pourrais modifier les propriétés (Multiselect, list, ...)

    j'aurais ainsi Bouton1-> listBox 11/12/13
    Bouton2--> ListBox 21/22/23
    (Bien sur, l'idée est aussi d'attribuer à la fois des propriétés type ActiveX et une réponse type .OnAction aux listboxes)

    Merci encore,

    EB

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Alors, ta première idée était le bonne...

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2013
    Messages : 46
    Par défaut
    Citation Envoyé par Daniel.C Voir le message
    Alors, ta première idée était le bonne...
    Dans ce cas, pourrais tu m'indiquer comment faire pour gérer les propriétés des Objets de ce type. supposons que j'ai ma listBox grâce au code:

    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
    Dim NewList As ListBox
    Dim indCell As Integer
     
    Set NewList = Sheets("Feuil1").ListBoxes.Add(1, 1, 1, 1)
     
    With NewList
     'MEF Liste
     
        .Top = 10
        .Width = 100
        .Height = 100
        .Left = 10 + 110 * NumBouton
    .Name = "List-1" & NumBouton
    .OnAction = "CBList1 (NumBouton)"
    End With
    J'aimerai donc mettre Mettre a jour ma liste Par un Range contenu dans une autre feuille (appelée Data& Numbouton^^)
    pour cela, je n'arrive pas à utiliser de propriété "équivalente" au .List/.ListFillRange de l'activeX (j'utilise donc le code suivant: )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    indCell = 1
    While IsEmpty(Sheets("Data" & NumBouton).Cells(1, indCell)) = False
    .AddItem (Sheets("Data" & NumBouton).Cells(1, indCell).Value)
    indCell = indCell + 1
     
    Wend
    Ce qui donne un résultat assez satisfaisant.

    Je n'arrive pourtant pas à donner des propriétés à ma liste (type MultiSelect ou ListStyle.


    Merci de ta réponse:

    EB

    C'est en forgeant qu'on devient forgeron, c'est en mangeant de la soupe qu'on grandit et c'est en jouant au bûcheron qu'un jour Léonard devint scie (Renaud Séchan)

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    "MultiSelect" a une valeur de 2 ou 3 suivant que c'est un multi-sélection simple ou étendue, par contre je ne vois pas de "ListStyle" dans le contrôle de formulaire. Il est clair que ce dernier est beaucoup moins riche en propriétés.

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

Discussions similaires

  1. [AC-2007] code vba pour bouton création etat
    Par mili972 dans le forum Access
    Réponses: 1
    Dernier message: 30/08/2012, 16h09
  2. [XL-2003] Assigner un code à plusieurs boutons
    Par tremens dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/02/2012, 07h42
  3. [AC-2007] plusieurs bouton, 1 code ..est-ce possible?
    Par robyseb dans le forum VBA Access
    Réponses: 3
    Dernier message: 03/07/2011, 18h11
  4. Réponses: 3
    Dernier message: 25/08/2009, 12h54
  5. Création automatique de plusieurs boutons avec macro associées
    Par barjovial dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/06/2008, 09h08

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