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] Supprimer un bouton dans la barre de menu


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    622
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 622
    Par défaut [VBA-E] Supprimer un bouton dans la barre de menu
    Bonjour,

    J'ai créé un bouton dans ma barre de menu et j'ai créé une procédure qui permet de le supprimer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Suppr_Bouton_Menu()
     
        On Error GoTo Pas_de_Bouton
     
            Application.CommandBars("Worksheet Menu Bar").Controls("&Bouton").Delete
     
    Pas_de_Bouton:
        On Error GoTo 0
     
    End Sub
    Cette procédure fonctionne.


    Par contre, lorsque je clic, sur ce bouton une autre procédure s'éxécute.... et à la fin de celle-ci je souhaiterai que le bouton soit supprimer en lancant la procédure Suppr_Bouton_Menu.... Mais cela ne fonctionne pas, car tant que la procédure s'éxécute le bouton est activé donc impossible de le supprimer.

    Help !

    Merci

    Damsmut

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Regarde , tu dois connaître sa position, c'est tout
    A+

    Edit
    Tu mets son index à la place de "CommandBars("Standard").Controls.Count"

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    622
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 622
    Par défaut
    Oais j'ai fait cela par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.CommandBars("Worksheet Menu Bar").Controls.Item(11).Delete
    Mais cela ne marche pas non plus car le bouton est grisé pendant toute la procédure.



    En fait pour simplifier ma demande : je veux que ce bouton soit supprimé lorsque je clic dessus.

    (Ce que j'ai pu faire par contre c'est le mettre en visible = false)

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Je comprends, ton code est directement lié à la macro. Tu peux utiliser une astuce qui permet de supprimer ton bouton en décalant cette suppression dans le temps
    D'abord tu crées ton bouton.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub CréerBouton()
    Dim nbboutons As Byte
        Set MonControl = Application.CommandBars("Standard")
        With MonControl
            nbboutons = .Controls.Count
            Set MonBouton = .Controls.Add(msoControlButton, 2950, nbboutons)
                With MonBouton
                    .Caption = "Recettes" ' Ce qu'affiche le bouton
                    .OnAction = "NomMacro" ' la macro associée au bouton
                End With
            Set MonBouton = Nothing
        End With
        Set MonControl = Nothing
    End Sub
    Et pour supprimer le bouton, tu fais faire ça par une autre macro pour dissocier les deux actions.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub NomMacro()
    Application.OnTime Now + TimeValue("00:00:02"), "SupprimerBouton"
    'Ici le code de ta macro associée au bouton
    End Sub
     
    Sub SupprimerBouton()
        Application.CommandBars("Standard").Controls(Application.CommandBars("Standard").Controls.Count).Delete
    End Sub
    Testé, ça fonctionne chez moi.
    Tu dis

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    622
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 622
    Par défaut
    Bonjour,

    Encore une question concernant ce sujet.... y'a t-il un moyen lorsque la macro s'exécute, de récupérer le nom du bouton qui est activé dans une variable ?

    merci

    A+

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Le caption du bouton ? Je ne sais pas mais le nom de la macro, oui. Quoique... Elle se trouve où, ta macro ?
    Sinon, en tête de macro, tu places une variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LeNomDeMonBouton = "Son caption"
    Tu pourrais faire ça ?
    A+

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/05/2014, 22h03
  2. [XL-2003] Désactiver bouton dans une barre de menu personnalisée
    Par Rough43 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/05/2012, 10h58
  3. [XL-2007] Créer un bouton dans la barre d'accès rapide via VBA
    Par Danieldu54 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/03/2011, 00h05
  4. Réponses: 5
    Dernier message: 15/01/2010, 19h32
  5. [AC-2003] Boutons dans la barre du menu démarrer
    Par OtObOx dans le forum IHM
    Réponses: 2
    Dernier message: 11/01/2010, 12h14

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