Afficher/Masquer un onglet du ruban

Résolu
Myrddin02 Messages postés 5 Statut Membre -  
Myrddin02 Messages postés 5 Statut Membre -

Bonjour tout le monde

Dans Word, j'ai créer des onglets perso dans le ruban et j'aimerais qu'à partir du premier onglet on puisse, grâce à des cases à cocher, afficher ou masquer certains autres onglets (qui prennent de la place) si on ne les utilise pas.

Les onglets s'appellent "Graphiques", "Maths", "Électricité", "Chimie", "Optique", "Mécanique" et "Équations". L'onglet "Graphiques" restera toujours ouvert et contiendra les boutons cases à cocher.

Merci d'avance de votre aide.

5 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     

    bonjour, peux-tu partager ton fichier?

    0
  2. Myrddin02 Messages postés 5 Statut Membre
     

    Bien sûr. Le voilà :

    Outils PhyChi v4.4.1
    https://drive.google.com/file/d/1A5XWVJLFCCA_01XSb8itM5InKilHqygO/view?usp=sharing

    Merci de prendre le temps de me répondre.

    0
  3. Myrddin02 Messages postés 5 Statut Membre
     

    Désolé, mais je n'arrive pas à partager le lien, il n'apparait pas en souligné.

    Est-ce à cause du type de fichier (modèle Word avec macros) ?

    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       

      J'ai le fichier, je vais regarder.  Le lien était simplement mal affiché, peut-être par sécurité.

      0
  4. Myrddin02 Messages postés 5 Statut Membre
     

    Bonjour à tous

    Bon, ben finalement, après moult recherches, j'ai réussi à trouver une solution. Je la partage avec vous pour ceux que ça intéresserait.

    D'abord un extrait de mon fichier XML (je vous mets l'exemple de deux onglets à afficher/masquer) :

    <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="ribbon_Load">
    <ribbon startFromScratch="false">
    
    <tabs>
    	<tab id="Graphiques" label="Graphiques" visible="true" insertBeforeMso="TabHelp">
    		<group id="AfficherOnglets" label="Afficher/Masquer">
    		
                <checkBox id="chkMaths" label="Maths" getPressed="getPressed" onAction="toggle_Visibility" />
                <checkBox id="chkElec" label="Electricité" getPressed="getPressed" onAction="toggle_Visibility" />
    		
    		</group>
    	</tab>
    
    	<tab id="Maths" label="Maths" insertBeforeMso="TabHelp" getVisible="getVisible_Maths">
            ...
        </tab>
    
    	<tab id="Electricite" label="Elec" insertBeforeMso="TabHelp" getVisible="getVisible_Elec">
            ...
        </tab>
    </tabs>
    </ribbon>
    

    Maintenant le code VBA que j'ai regroupé dans un module :

    Option Explicit
    
    Public monRuban As IRibbonUI
    Public visible_Maths As Boolean
    Public visible_Elec As Boolean
    
    ' procédure se lançant au chargement du ruban
    Sub ribbon_Load(ruban As IRibbonUI)
        Set monRuban = ruban
        visible_Maths = True
        visible_Elec = True
    End Sub
    
    ' pour rafraichir le ruban
    Sub ribbon_Refresh()
        monRuban.Invalidate
    End Sub
    
    Sub getVisible_Maths(control As IRibbonControl, ByRef returnedVal)
        returnedVal = visible_Maths
    End Sub
    
    Sub getVisible_Elec(control As IRibbonControl, ByRef returnedVal)
        returnedVal = visible_Elec
    End Sub
    
    Sub getPressed(control As IRibbonControl, ByRef returnedVal)
        Select Case control.id
            Case "chkMaths"
                returnedVal = visible_Maths
            Case "chkElec"
                returnedVal = visible_Elec
        End Select
    End Sub
    
    Sub toggle_Visibility(control As IRibbonControl, pressed As Boolean)
        Select Case control.id
            Case "chkMaths"
                visible_Maths = pressed
                ribbon_Refresh
            Case "chkElec"
                visible_Elec = pressed
                ribbon_Refresh
        End Select
    End Sub
    

    J'espère que cela vous sera utile.

    Bye.

    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       

      merci

      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Myrddin02 Messages postés 5 Statut Membre
     

    Et merci à vous d'avoir pris le temps de regarder mon problème.

    0