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 :

Désactiver bouton dans une barre de menu personnalisée [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2008
    Messages : 14
    Points : 14
    Points
    14
    Par défaut Désactiver bouton dans une barre de menu personnalisée
    Bonjour à tous,

    J'ai pu créer une barre de menu personnalisée avec plusieurs boutons ( d'après "VBA EXCEL Création d'une barre de menus personnalisée par Fred (fring)").

    Seulement, je souhaiterais désactiver et griser un ou plusieurs boutons de commande après un clic là-dessus . Ceci a pour éviter de recommencer une 2ème fois.

    et avant fermeture de ce classeur, réactivation de ces boutons.

    Merci d'avance

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    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 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Bonjour,

    Pour désactiver le bouton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        With Application.CommandBars("Personnalisé 1")
            .Controls(1).Enabled = False
        End With
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2008
    Messages : 14
    Points : 14
    Points
    14
    Par défaut
    Rebonjour,

    Avec ce macro, cela ne fonctionne pas comme je souhaitais.

    C'est seulement après le clic d'un bouton (après lancement d'un macro) que je souhaitais désactiver ce bouton. (il suffit que ce bouton soit désactivé après lancement d'un macro; cela évitera de recliquer une 2ème fois par erreur)

    En espérant d'être clair,

    Bon après midi!

  4. #4
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    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 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Mets ce code à la fin de ta macro. Dans la macro évènementielle de fermeture du classeur, mets au contraire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        With Application.CommandBars("Personnalisé 1")
            .Controls(1).Enabled = True
        End With
    End Sub
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2008
    Messages : 14
    Points : 14
    Points
    14
    Par défaut
    ça marche!

    Merci!

    Problème résolu

  6. #6
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    Au cas où tu repasserais par ici, pour répondre à ...
    Citation Envoyé par Rough43 Voir le message
    je souhaiterais désactiver et griser un ou plusieurs boutons de commande après un clic là-dessus
    il y a une solution plus souple que de passer par l'index du bouton Controls(1) qui peut évoluer dans le temps au fur et à mesure que l'on ajoute ou enlève des contrôles sur cette barre de menus.

    Lorsque tu as créé les boutons, tu as lié une procédure à chaque bouton via la propriété OnAction : MonBouton.OnAction = "MaMacro" .

    Dans chacune de ces procédures, tu ajoutes cette ligne de code CommandBars.ActionControl.Enabled = False qui aura pour effet de désactiver le bouton sur lequel on vient de cliquer, sans se soucier de savoir si ce bouton est le contrôle n°1, 2, ou 5...

    Pour réactiver tous les boutons à la fermeture du classeur, tu peux faire comme ceci :
    Code à placer dans un module standard : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Boutons_ON()
    Dim Ctrl As CommandBarControl
     
    For Each Ctrl In CommandBars("mabarre").Controls
        Ctrl.Enabled = True
    Next
    End Sub
    Code à placer dans le module ThisWorkbook : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Boutons_ON
    End Sub
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

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

Discussions similaires

  1. [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
  2. création d'un bouton dans une barre d'outils
    Par kawther dans le forum Interfaces Graphiques
    Réponses: 18
    Dernier message: 20/11/2008, 23h28
  3. [VBA-E] Supprimer un bouton dans la barre de menu
    Par damsmut dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 19/06/2007, 17h15
  4. [Sources]Créer un bouton dans une barre d'outils
    Par ouskel'n'or dans le forum Contribuez
    Réponses: 2
    Dernier message: 19/03/2007, 12h32
  5. Réponses: 2
    Dernier message: 08/06/2006, 11h09

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