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 :

CommandBars => Control enfoncé ?


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
    Développeur VBA
    Inscrit en
    Décembre 2015
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur VBA

    Informations forums :
    Inscription : Décembre 2015
    Messages : 93
    Par défaut CommandBars => Control enfoncé ?
    Bonjour à tous,

    Je cherche à savoir si une commande de ma barre d'outils (du ruban en fait) est enfoncé.
    Quelle propriété peux me donner cette information ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        For Each ctl In Application.CommandBars("Standard").Controls
             If ctl.Caption = "&Format Painter" Or ctl.Caption = "Reproduire la mise en &forme" Then
                If ctl.enabled = True Then      ' => Mon problème est ici
                    MsgBox "je suis enfoncé"
                Else
                    MsgBox "je ne suis PAS enfoncé"
                End If
            End If
        Next
    Merci pour votre aide

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur VBA
    Inscrit en
    Décembre 2015
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur VBA

    Informations forums :
    Inscription : Décembre 2015
    Messages : 93
    Par défaut
    En fait, j'aurai besoin de savoir si la commande "Reproduire la mise en forme" est activée ou pas au lancement d'une autre macro.

    Je suis parti de l'idée de savoir si la commande est enfoncée dans le ruban, mais il y a peut-être une autre méthode ? ... certainement plus simple :-)

    Merci d'avance.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par wouana19 Voir le message
    Bonjour,

    Il vous faut mettre un "flag" dans une cellule et la tester.

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur VBA
    Inscrit en
    Décembre 2015
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur VBA

    Informations forums :
    Inscription : Décembre 2015
    Messages : 93
    Par défaut
    Je ne suis pas certain de comprendre

    Le problème est que la fonctionnalité "Reproduire la mise en forme" peut se désactiver de plusieurs manières.

    Si l'utilisateur clic une seule fois sur la commande, il pourra l'utiliser une fois (désactivation automatique)
    Si l'utilisateur effectue un double clic, il peut désactiver la fonction en recliquant dessus
    Si l'utilisateur effectue un double clic, il peut désactiver en appuyant sur [ESC]
    si l'utilisateur insère un object
    ... tout ce que j'oublie et que je ne sais pas..
    Et bien entendu lorsqu'il ferme le fichier

    Donc tu veux dire qu'il faut que je note une info dans une cellule lorsqu'il clic sur la commande "reproduire la mise en forme", et que je teste tout les moyens de sortie, et que je modifie le contenu de ma cellule ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par wouana19 Voir le message
    Si les deux boutons enclenchent deux macros différentes, une cellule peut être renseignée en fin de programme pour indiquer la dernière action réalisée. Pour cela, il faut que les événements lancent des macros qui se situent dans un module standard par exemple.

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur VBA
    Inscrit en
    Décembre 2015
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur VBA

    Informations forums :
    Inscription : Décembre 2015
    Messages : 93
    Par défaut
    Je vois maintenant ce que tu veux dire.

    Le soucis est qu'une des commandes fait partie des commandes d'origine d'Excel, et que ce n'est pas moi qui la lance par macro. Donc je ne peux pas créer un "Flag". En tout cas il me semble pas.

    J'arrive à savoir si le bouton Gras est pressé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Application.CommandBars.GetPressedMso("Bold") = True Then
    Mais bien sûr cela ne fonctionne pas avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Application.CommandBars.GetPressedMso("FormatPainter") = True Then
    Visiblement je ne suis pas le seul à avoir ce problème : voir ici le lien

    Pour mieux expliquer mon problème, lorsque je clic sur une cellule, je veux qu'une information remonte dans un ruban personnalisé. ça j'arrive le faire sans problème.
    Bien entendu, ma je dois faire une mise à jour du ruban avec iRibbon.Invalidate
    Mon problème est qu'en lançant cette commande, le pinceau se désactive tout seul. Grrrr.

    Donc en testant si il est pressé, je modifierai mon code en conséquence.

    Je vais y arriver :-)

  7. #7
    Membre éclairé
    Homme Profil pro
    Développeur VBA
    Inscrit en
    Décembre 2015
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur VBA

    Informations forums :
    Inscription : Décembre 2015
    Messages : 93
    Par défaut
    Bon, je me répond personnellement,

    A la place de iRibbon.Invalidate j'ai mis iRibbon.InvalidateControl "MonControl"... mais mon pinceau se désactivait toujours...

    Puis j'ai trouvé ça sur le web.
    https://social.msdn.microsoft.com/Fo...?forum=worddev

    Visiblement lorsque l'on utilise l'event "WindowSelectionChange" le "FormatPainter" se désactive, est c'est comme ça !

    La seule solution que j'ai est de reprogrammer entièrement la commande du pinceau pour arriver à mes fins. Mais cela me paraît compliquer à mettre en œuvre, surtout pour gérer le double clic (celui qui me pose problème).

    à moins que vous ayez une idée ?

Discussions similaires

  1. Problème de la commande bar
    Par abidineb dans le forum MATLAB
    Réponses: 7
    Dernier message: 29/05/2011, 18h25
  2. [Toutes versions] la taille de bouton dans la command bar
    Par patricktoulon dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/02/2010, 15h06
  3. inactiver bouton commande dans barre outil personnalisée
    Par castor123456 dans le forum VBA Word
    Réponses: 0
    Dernier message: 31/07/2009, 11h59
  4. Réponses: 6
    Dernier message: 09/12/2008, 14h29
  5. [Fait]Command bars Access 2002
    Par jolemoine dans le forum Access
    Réponses: 3
    Dernier message: 19/03/2007, 10h08

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