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 :

assigner macro à un bouton via VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 107
    Par défaut assigner macro à un bouton via VBA
    Bonjour
    comment je peux faire poour assigner par VBA une macro à un mon bouton?
    l enregistreur de macro me donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
        Application.CommandBars("Standard").Controls.Add Type:=msoControlButton, ID _
            :=2950, Before:=23

    Mais il ne m'associe pas ma macro automatiquement à mon bouton...

    (question accessoire : comment faire pour choisir de mettre sur mon bouton du texte plutot que le smiley?)

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Un peu de lecture, cet article a été fait pour Access, mais les instructions sont les mêmes, car les applications partagent la même bibliothéque.

    Starec

  3. #3
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 107
    Par défaut
    euh j'ai essayé....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    '
        Application.CommandBars("standard").Controls.Add Type:=msoControlButton, ID _
            :=2950, Before:=23
     
    Application.CommandBars("standard").Controls(1).OnAction = "vnqldknv"
    mais, je ne sais pas pourquoi, ça ne me l'assigne toujours pas

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re

    Bizarre

    Voici comment il faut mieux procéder :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Public Sub barre()
        Dim btn As Office.CommandBarControl
        Set btn = Application.CommandBars(1).Controls.Add(msoControlButton)
        With btn
            .Caption = "toto"
            .Style = msoButtonCaption
            .OnAction = "test"
        End With
    End Sub
    et la routine test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Sub test()
        MsgBox "CA MARCHE"
    End Sub
    Starec

  5. #5
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 107
    Par défaut
    j'ai mis exactement ce que tu as mis...mais ça ne me crée même plus le bouton
    je dois avouer je ne comprend pas trop...parce que, à priori, on code me parait bon...

  6. #6
    Invité
    Invité(e)
    Par défaut
    Re

    Citation Envoyé par ouioui_cmoi Voir le message
    j'ai mis exactement ce que tu as mis...mais ça ne me crée même plus le bouton
    je dois avouer je ne comprend pas trop...parce que, à priori, on code me parait bon...
    Il est bon, je viens de le faire à la volé sous Excel 2000.
    Comment lances-tu ton code, où est-il placé ?
    De plus as-tu bien mis un caption à ton bouton et le bon style ? C'est le seul moyen de le voir apparaitre.

    Starec

  7. #7
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 107
    Par défaut
    je lance mon code par l'intermédiaire d'un module vba en faisant Play
    le bouton n est pas encore crée et je veux que le programme me le crée, et assigne ma macro à ce bouton...

  8. #8
    Invité
    Invité(e)
    Par défaut
    Re

    Pourrais-tu mettre le code complet que tu as utilisé.

    Le mien crée le bouton, en fait le style, y met un libellé, et affecte la routine sous Test (qui doit être déclarée dans un module).

    Starec

  9. #9
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 107
    Par défaut
    Je vais expliquer ce que je fais :
    dans workbook, quand le fichier excel s'ouvre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Public Sub barre()
        Dim btn As Office.CommandBarControl
        Set btn = Application.CommandBars(1).Controls.Add(msoControlButton)
        With btn
            .Caption = "tableausg"
            .Style = msoButtonCaption
            .OnAction = "test"
        End With
    End Sub
    avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Sub test()
        MsgBox "CA MARCHE"
    End Sub

    Et lorsqu'on ferme excel :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public Sub barrebarre()
        Dim btn As Office.CommandBarControl
     
       CommandBars("btn").Controls(1).Delete
     
     
    End Sub
    Mais, ce code pour supprimer le bouton ne marche pas...quelqu'un aurait une idée de l'erreur?
    merci d'avance

    PS : Starec, en fait, il marche ton programme, il me créait juste le bouton à un endroit que je n'avais pas vu...

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Essayes de lancer ce code pour la suppression

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Public Sub SubBtn()
        Dim btn As Office.CommandBarControl
        For Each btn In Application.CommandBars(1).Controls
            If btn.Caption = "tableausg" Then
                btn.Delete
            End If
        Next btn
    End Sub
    Starec

  11. #11
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 107
    Par défaut
    ca marche!!!
    merci beaucoup Starec

  12. #12
    Invité
    Invité(e)
    Par défaut
    Ok

    Lis quand même l'article, tu comprendras mieux pourquoi ta suppression est fausse.

    Starec

  13. #13
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 107
    Par défaut
    ouep v jeter un coup d'oeil

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

Discussions similaires

  1. Insertion d'une macro dans un bouton via VBA
    Par macx56 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/05/2014, 20h20
  2. [XL-2003] Affecter une macro à un bouton en VBA
    Par dbeauhaire dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/04/2012, 16h16
  3. Cliquer un bouton via VBA
    Par needlesurfer dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/12/2009, 17h09
  4. Réponses: 1
    Dernier message: 18/06/2008, 10h32
  5. execute une macro via vba sous access
    Par nes dans le forum Access
    Réponses: 4
    Dernier message: 29/03/2006, 00h15

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