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 :

Changer le nom d'un bouton du ruban en VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut Changer le nom d'un bouton du ruban en VBA
    Bonjour,

    j'ai créé un nouvel onglet dans le ruban d'excel, un nouveau groupe et un bouton lié à une macro. Je voudrai pouvoir renommer ce bouton à chaque fois que j'y clique dessus. Pourriez-vous m'indiquer comment faire, svp. J'ai testé le code ci-dessous mais il m'a pas permis d'identifier le bouton:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        Dim ctrl As CommandBarControl
        For Each Cbar In Application.CommandBars
            '''MsgBox (Cbar.Name)
            With Cbar
                If .Type = msoBarButton Then
                    For Each ctrl In .Controls                    
                        If ctrl.Name = "My Button Name" Then
                            MsgBox ("OK")
                        End If
                    Next ctrl
                End If
            End With
        Next

  2. #2
    Membre éclairé Avatar de Vba14
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2019
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2019
    Messages : 440
    Par défaut
    Bonjour,

    Peut-être une réponse ici :

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut
    Attention de quoi parle-t-on de UIribboncontrol ou de commandbarcontrol c'est pas tout à fait la même chose pas du tout même

    si c'est un onglet (customUI) il te faut

    le callback du ribbon voir même le onload callback (si bien entendu tu l'as prévu dans le custonUI.xml) pour déterminer de quoi on parle
    après je ne sais pas si on peut changer le label d'un (<button...) pas VBA
    par contre faire une bascule avec un autre bouton (visible/ou pas) je pense que c'est possible

    SI c'est une commandbars alors récupère-le par son index dans la commandbars et son .caption=....
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re bon finalement avec une toute petite recherche j'ai trouvé pour les controls de ruban customUI
    tu peux même changer l'image aussi

    dans un module standard les callbacks
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Dim RibbonUI As IRibbonUI
    Dim ChangeLabel As Boolean
     
    Sub CustomUI_onLoad(ribbon As IRibbonUI)
    Set RibbonUI = ribbon
    End Sub
     
    Sub getLabelMonBouton(control As IRibbonControl, ByRef returnedVal)
    If ChangeLabel Then
      returnedVal = "Off"
    Else
      returnedVal = "On"
    End If
    End Sub
     
    Sub getImageMonBouton(control As IRibbonControl, ByRef returnedVal)
    If ChangeLabel Then
      returnedVal = "SadFace"
    Else
      returnedVal = "HappyFace"
    End If
    End Sub
     
    Sub MonBoutonPerso_Click(control As IRibbonControl)
    If ChangeLabel Then
      'MsgBox "Change le label en ON et l'image ''souriant''"
    Else
     ' MsgBox "Change le label en OFF et l'image ''fais la gueule''"
    End If
    '---
    ChangeLabel = Not ChangeLabel
    '---
    RibbonUI.InvalidateControl "MonBoutonPerso"
    End Sub
    dans le customUI.xml
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"  onLoad="CustomUI_onLoad">
     <ribbon>
        <tabs>
          <tab id="mon_menu_perso" label="mon menu perso">
            <group id="GroupPerso" label="Mon groupe perso">
              <button id="MonBoutonPerso" 
      size="large"
                getLabel = "getLabelMonBouton"
                getImage = "getImageMonBouton"
                onAction="MonBoutonPerso_Click" />
            </group>
          </tab>
        </tabs>
      </ribbon>
    </customUI>

    Nom : demo3.gif
Affichages : 885
Taille : 51,0 Ko
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    re bon finalement avec une toute petite recherche j'ai trouvé pour les controls de ruban customUI
    Merci beaucoup Patrick pour ces bouts de code. Je connaissais pas le fichier CustomUI.xml. Le dessin résume très bien ce que je veux faire. Ça me permet d'avoir qu'un bouton pour deux macros "opposées". Je vais suivre les instructions et je pense pouvoir y arriver. J'ai repéré des liens 1, 2, qui vont m'aider aussi.

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

Discussions similaires

  1. [XL-2007] Comment trouver le nom d'un boutons du ruban par son id
    Par patricktoulon dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/02/2013, 16h01
  2. Changer le Nom d'un bouton pendant une exécution
    Par fmr130 dans le forum Débuter
    Réponses: 9
    Dernier message: 14/01/2009, 14h37
  3. [HTML] Changer le nom d'un bouton parcourir
    Par hacksi dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 09/04/2008, 18h31
  4. changer le nom d'un bouton
    Par forHelp dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 16/10/2007, 11h25
  5. Changer le nom d'un bouton
    Par @rkane dans le forum Access
    Réponses: 4
    Dernier message: 09/07/2006, 17h09

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