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 :

utiliser un togglebutton pour afficher/masquer le ruban office [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Femme Profil pro
    commercante
    Inscrit en
    Février 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : commercante
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2015
    Messages : 18
    Par défaut utiliser un togglebutton pour afficher/masquer le ruban office
    Bonjour,

    voila j'en suis à mon point final (+ un esthetique)

    j'ai crée un bouton custom pour afficher/masquer les onglets
    j'ai voulu créer le meme pour afficher/masquer le ruban office et donc ne laisser que mon ruban perso.

    je précise que je suis pas douée du tout pour les codes vba et donc j'ai repris celui des onglets et modifier le startfromscratch.

    voici le code utilisé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    'Callback for TB02 onAction
    Sub TB02(control As IRibbonControl, pressed As Boolean)
        Application.ScreenUpdating = True
        If pressed = True Then
            StartFromScratch = True
        Else
            StartFromScratch = False
        End If
    End Sub
    Merci d'avance pour votre aide
    Cordialement,

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Tu trouveras au bout de ce lien Hide or Display Ribbon Tab/Group/Control with getVisible un classeur du légendaire Ron de Bruin : 5 : Hide-Display-Built-in Tabs.xlsm

    Il fait cela avec des bouton de commande, mais tu peux adapter à un toggle button du ruban.

    Pour l'utilisation du toggle button pour masquer/ montrer un onglet, tu peux regarder Hiding Tabs on the Office Fluent Ribbon Using a Toggle Button chez Microsoft msdn.

    Bon courage,

    pgz

  3. #3
    Membre averti
    Femme Profil pro
    commercante
    Inscrit en
    Février 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : commercante
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2015
    Messages : 18
    Par défaut
    Merci PGZ,

    le toggle est pret j'ai pas eu de soucis, (j'ai fais un C/C du toggle onglet/entete/

    par contre je n'arrive absolument pas a comprendre et codifier le Hide-display de Ron de Bruin
    j'ai vu le truc, j'ai essayé de le reproduire, mais j'ai tout planté :s et ca m'a pris plus d'une heure à essayé de remettre le truc en ordre ....
    je crois que je vais finir par abandonner car ca a l'air trop compliqué pour moi

  4. #4
    Invité
    Invité(e)
    Par défaut
    Salut,

    Qu'est-ce que tu ne comprends pas ?

    Lors du chargement du Ruban, une fonction de rappel (onLoad) est appeler, et elle n'est appelé qu'une seule fois. Elle fournit une référence du rubban (IRibbonUI). Il faut stocker cette référence pendant toute la durée de l'ouverture du classeur.
    onLoad est appelé juste après Workbook.Open. Grâce à cette référence, il est possible d'appeler la fonction Invalidate et CustomUI execute un rappel : Ici, dans ton cas, c'est GetVisible qui te permet de cacher ou de montrer un Onglet en retournant une valeur (Booléenne) au 2ème paramètre de ce Callback:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sub GetVisible(control As IRibbonControl, ByRef visible)


    ------------------------------------------------------------------

    IRibbonUI.Invalidate

    Nota: IRibbonUI.Invalidate appelera GetVisible en boucle de manière à prendre en compte tous les onglets.
    L'ID de l'onglet (Tab Id) est disponible via le paramètre control As IRibbonControl (control.ID).
    Dernière modification par Invité ; 06/02/2015 à 21h52.

  5. #5
    Membre averti
    Femme Profil pro
    commercante
    Inscrit en
    Février 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : commercante
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2015
    Messages : 18
    Par défaut
    Bonjour nouveau2,

    ce que je ne comprend pas, c'est surtout que je découvre (en apprenant sur le tas), très néophyte
    j'ai monté ce fichier avec différents tutos (auquel je sais il y a 2-3 trucs qui fonctionnent pas)

    donc quand tu mets ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sub GetVisible(control As IRibbonControl, ByRef visible)
    et que je regarde ce que j'ai pu faire, je coince déjà sur plusieurs trucs a part que je sais que je dois le mettre en faisant ALT+F11
    seulement si je ne met que ça, rien ne se passe, donc je dois certainement faire un truc

    Excuses moi de ne pas tout comprendre du premier coup, cependant je lis, éventuellement je les C/C (même si j'ai déjà planté plusieurs fois mes fichiers)
    Donc voila, difficile de dire mieux, donc quand je dis que je pige pas c'est que j'ai essayé (même à l'arrache) mais que j'ai pas compris, et/ou qu'il m'a planté

    Cordialement,

  6. #6
    Membre averti
    Femme Profil pro
    commercante
    Inscrit en
    Février 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : commercante
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2015
    Messages : 18
    Par défaut
    Bonsoir à toutes & tous,

    Bon voila j'ai trouvé des codes (à force de fouiller), seulement je n'arrive pas à le faire coincider avec mon fichier
    et j'avoue que je suis totalement perdue, si quelqu'un pourrait m'aiguiller un peu plus.
    (après avoir planter 3 fois mon fichier et passer qques heures je ne sais plus comment gerer le truc)

    Voici le code VBA
    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
    Option Explicit
    Dim Ruban As IRibbonUI
    Dim Voir_Masque As Boolean
     
     
    Sub MonRuban_OnLoad(ribbon As IRibbonUI)
        Set Ruban = ribbon
    End Sub
    Sub MonRuban_OnAction_Press(control As IRibbonControl, pressed As Boolean)
        Voir_Masque = pressed
        Ruban.Invalidate
    End Sub
    Sub MonRuban_GetPressed(control As IRibbonControl, ByRef returnValue)
        returnValue = Voir_Masque
    End Sub
    Sub MonRuban_GetVisible(control As IRibbonControl, ByRef visible)
        visible = Voir_Masque
    End Sub
    voila le code du custom :
    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
    17
    18
    19
    20
    21
    <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="MonRuban_OnLoad">
    	<ribbon startFromScratch="true">
    		<tabs>
    		<tab idMso="TabHome" getVisible="MonRuban_GetVisible"/> 
                  <tab idMso="TabData" getVisible="MonRuban_GetVisible"/> 
                  <tab idMso="TabInsert" getVisible="MonRuban_GetVisible"/> 
                  <tab idMso="TabFormulas" getVisible="MonRuban_GetVisible"/> 
                  <tab idMso="TabPageLayoutExcel" getVisible="MonRuban_GetVisible"/> 
                  <tab idMso="TabPrintPreview" getVisible="MonRuban_GetVisible"/> 
                  <tab idMso="TabReview" getVisible="MonRuban_GetVisible"/> 
                  <tab idMso="TabView" getVisible="MonRuban_GetVisible"/> 
                  <tab idMso="TabDeveloper" getVisible="MonRuban_GetVisible"/>
    		  <tab id="tab1" label="test">  
    				<group id="group1">
    					<toggleButton id="toggleButton1" getPressed="MonRuban_GetPressed" onAction="MonRuban_OnAction_Press" label="appuyer" visible="true"/>
    				</group>
    			</tab>
     
    		</tabs>
    	</ribbon>
    </customUI>

    et je joins mon fichier .xlsm

    merci d'avance pour l'aide apporté
    Fichiers attachés Fichiers attachés

  7. #7
    Invité
    Invité(e)
    Par défaut
    Salut,

    J'ai testé les 2 codes que tu as fourni rapidement sur Excel 2013, et ça fonctionne correctement. Lors du clique sur le bouton, tous les onglets :

    - sont montrés si le bouton est enfoncé.
    - sont cachés si le bouton n'est pas enfoncé.

    @+

  8. #8
    Membre averti
    Femme Profil pro
    commercante
    Inscrit en
    Février 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : commercante
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2015
    Messages : 18
    Par défaut
    Bonsoir nouveau2,
    Oui ça fonctionne dans un nouveau classeur (je l ai essayé et nickel)
    Mais ça marche pas sur mon fichier, ç est la que je comprend pu.
    Car ce qui est valable pour 1 devrait l être pour 2 ....

  9. #9
    Membre averti
    Femme Profil pro
    commercante
    Inscrit en
    Février 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : commercante
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2015
    Messages : 18
    Par défaut
    J'ai réussi

    pour l'explication, je savais que les codes ci-dessus fonctionnaient dans un classeur mais pas dans le mien.
    ben j'ai copier mon ruban, repris ce que j'avais besoin et refait

    En tout cas merci @ vous pour votre aide




    PS : aux admins, je voudrais laisser le fichier dispo pour les personnes qui en auraient besoin (fiche de paie jusqu'a 9 salariés, avec loi fillon a jour)
    ca coutera beaucoup moins cher que d'acheter un logiciel, donc je ne sais pas comment vous le laisser à part par cette methode (fichier joint)

    Cordialement,
    Calindoudou
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. utilisation de JGraph pour afficher les attributs de classe
    Par Mamy-Laye dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 10/11/2009, 10h58
  2. Astuce pour afficher/masquer certaines partie facilement
    Par casier dans le forum Mise en forme
    Réponses: 2
    Dernier message: 21/08/2009, 14h09
  3. Utiliser les Border pour afficher une règle ?
    Par Beleg dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 26/04/2008, 15h14
  4. Réponses: 1
    Dernier message: 19/05/2007, 14h27
  5. Réponses: 4
    Dernier message: 12/09/2005, 19h23

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