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 :

[VBA-E] bouton dynamique avec fonction


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Points : 196
    Points
    196
    Par défaut [VBA-E] bouton dynamique avec fonction
    bonjour

    j'ai crée un ensemble de boutons dynamiquement, dans le tag de chaque bouton j'ai mis un string ...
    et je veux affecter un click qui appellerait une fonction en passant le tag en paramètre, mais la solution d'ecrire du code dynamiquement avec .InsertLines ne me convient pas
    quelles solution proposez vous ?
    merci

  2. #2
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut Re: [VBA] bouton dynamique avec fonction
    Citation Envoyé par ogenki
    quelles solution proposez vous ?
    .InsertLines

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Il me semble qu'à l'époque où je fréquentais ce forum, bidou m'avait proposé une solution avec une création de collection de bouton

    Mon iquiétude sur le insertLines est que se passe-til en cas de sauvegarde du fichier ... les lignes insérées sont sauvegardées ?

  4. #4
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    dans le tag de chaque bouton j'ai mis un string ...
    Bon! je vois que l'on recommence... avec la même philosophie....
    La mienne est donc également la même :
    Si ce qui est inscrit dans la propriété tag l'est dyamiquement..., je veux en conclure que cette inscription correspond à un raisonnement... et que ce raisonnement sera donc répété...systématiquement.
    J'ai vraiment besoin que l'on m'explique ce genre de manoeuvre...

  5. #5
    Membre habitué
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Points : 196
    Points
    196
    Par défaut
    J'ai vraiment besoin que l'on m'explique ce genre de manoeuvre...
    je sais pas si sa repond a ta question mais mon bouton est dans une boucle et a chaque foi le tag a une valeur diferente...

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    le but est simplement que l'appui sur le bouton lance la focntion avec le contenu de son tag ...
    le contenu du tag étant bien entendu différent pour chaque bouton ...

    mais peut être qu'avec une autre approche ...

    si tous les boutons portent le même non on a une collection non ?

    si on mets juste en dur dans le code un focntion du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    private sub monbouton.click()
    call mafonction(monbouton.tag)
    end sub

  7. #7
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Bon ! Et alors ?
    Je suppose que tu ne changes pas la chaine inscrite dans le .tag juste pour t'amuser à la changer plusieurs fois, dans une boucle.
    Je veux penser qu'apès chaque modification de la chaine dans le .tag, tu utilises ce qu'il y a dans le .tag, non ? (et apparemment il s'agit d'un paramètre à passer à une fonction).
    Bien que je ne comprenne d'ailleurs pas ce que le .tag aurait de plus intéressant qu'une variable, j'accepte l'idée de son utilisation.
    Celà ne change toujours rien à la "philosophie" de la chose.

  8. #8
    Membre habitué
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Points : 196
    Points
    196
    Par défaut
    bin oui je le passe en parametre dans une fonction...

  9. #9
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Ta question est-elle donc tout simplement (tag ou pas tag) :
    "comment appeler, lors d'un événement click, une fonction en lui passant un paramètre connu ?"
    Si c'est cela : bravo pour la perte de temps jusqu'ici...

  10. #10
    Membre habitué
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Points : 196
    Points
    196
    Par défaut
    non ma question est de le faire sans utilisé de
    .InsertLines

  11. #11
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    pour le tag... il faut bien que l'on sache quel bouton doit passer quel paramètre ...
    donc au lieu d'associer un tableau avec les valeurs d'un coté et des indices de boutons de l'autre j'ai trouvé plus simple de mettre le paramètre à passer dans le tag ...

    la question est comment attribuer le click au bouton ...
    qu'est ce que l'on mets dans la boucle ou est ce que simpelemnt le fait que tous les boutons ayant le même nom et avoir une seule sub en dur suffit ...

    Et quelle que soit l'issue de ce post ce n'est pas une perte de temps parceque'à cette heure on ne sait pas comment le faire ...

  12. #12
    Membre éclairé
    Avatar de Catbull
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    542
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 542
    Points : 854
    Points
    854
    Par défaut Re: [VBA-E] bouton dynamique avec fonction
    Citation Envoyé par ogenki
    bonjour

    j'ai crée un ensemble de boutons dynamiquement, dans le tag de chaque bouton j'ai mis un string ...
    et je veux affecter un click qui appellerait une fonction en passant le tag en paramètre, mais la solution d'ecrire du code dynamiquement avec .InsertLines ne me convient pas
    quelles solution proposez vous ?
    merci
    Les boutons que tu as créés le sont-ils sur une feuille Excel ou sur une forme?

    Peux tu nous fournir le code qui génère ces boutons?

  13. #13
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    sur une feuille excel ...

  14. #14
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Citation Envoyé par SpaceFrog
    si tous les boutons portent le même non on a une collection non ?
    j'ai un gros doute

    il me semble, si j'ai bien suivi le topic précédent, que tu es sous Excel, arrête-moi si je me trompe

    Or, le gros pb avec Excel, c'est qu'on ne peut pas créer de contrôles avec un index, donc tu ne peux pas leur donner le même nom (même avec une collection, il faudrait pouvoir passer un index à commandbutton_click, qui n'en accepte pas)

    Excuse si je dis une anerie, j'suis pas dans mon assiette aujourd'hui

  15. #15
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Je ne sais pas ce que peut ou non faire Excel (pas ma tasse de thé).
    Je pars donc de l'hypothèse selon laquelle excel N'accepte pas de groupes de contrôles.
    Si Excel accepte les optionsButtons :
    Pourquoi ne pas les utiliser avec pour rôle, pour chacun d'entre eux, de "rapporter" lorsque cliqué, dans une variable ou ailleurs (y compris le tag du commandbutton) un paramètre "en cours"
    En cliquant alors sur le commandbutton, c'est ce paramètre qui interviendrait)

  16. #16
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    le problème reste entier
    d'une part assosier un indice à un bouton qui irait rechercher une valeur dans un tableau ...
    donc autant passer par le tag ...

    je teste les collections de boutons sur une feuille excel .. c'est là ma dernière cartouche

  17. #17
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    bonsoir

    Citation Envoyé par SpaceFrog
    Mon iquiétude sur le insertLines est que se passe-til en cas de sauvegarde du fichier ... les lignes insérées sont sauvegardées ?
    Oui



    un exemple pour que les boutons appellent une fonction contenant une variable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    For i = 1 To 2
        Texte = "Sub Bouton" & i & "_Click()" & vbCrLf
        Texte = Texte & "MaFonction monParametre" & i & vbCrLf
        Texte = Texte & "End Sub"
     
        With ThisWorkbook.VBProject.VBComponents(ActiveSheet.CodeName).CodeModule
        j = .CountOfLines + 1
        .InsertLines j, Texte
        End With
    Next i

    bonne soiree
    michel

  18. #18
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    ben justement il ne faut pas quelles soient sauvegardées ...

  19. #19
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    rebonsoir

    Si tu ajoutes les macros dynamiquement , tu peux aussi les supprimer quand tu as terminé de les utiliser


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub supprimerProceduresFeuilleActive()
    With ActiveWorkbook.VBProject.VBComponents(ActiveWorkbook.ActiveSheet.CodeName).CodeModule
    .DeleteLines 1, .CountOfLines
    End With
    End Sub

    bonne soiree
    michel

  20. #20
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Bon. J'en reste à la question d'Ogenki, qui n'a à passer que des paramètres.
    Si Excel n'offre pas de groupes de contrôles et que l'on veut éviter de répéter trop de code :
    appel d'une sous-routine (toujours la même) avec passage du paramètre inscrit dans le tag (ce ne sera qu'un minuscule bout de code pour chaque bouton)

Discussions similaires

  1. Réponses: 5
    Dernier message: 25/01/2008, 11h15
  2. [VBA-E]Selection dynamique avec souris de plages de cellules
    Par geeksideofme dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 08/05/2007, 14h25
  3. [VBA-E] Selection dynamique avec la sourie de plages de cellules Excel
    Par geeksideofme dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/04/2007, 11h20
  4. [XUL] Boutons dynamiques (avec les dates)
    Par 20_cent dans le forum Autres langages pour le Web
    Réponses: 9
    Dernier message: 09/08/2006, 22h22
  5. [VBA E] bouton dynamique sur une feuille
    Par zoumzoum59 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 24/06/2006, 18h05

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