XL 2016 Ruban personnalisé

Madmax33

XLDnaute Nouveau
Bonjour à tous,
Je reviens vous voir au sujet de-là personnalisation du ruban.
J'ai créé mon ruban à l'aide de l'outil magique de P. TOULON et il fonctionne.
Je voudrais pousser le bouchon plus loin, sachant que j'ai 3 feuilles différentes et que mon ruban est découpé en 3 zones.
Je voudrais que les 2 zones de mon ruban qui ne sont pas concernées par la feuille active soient cachées ou grisées.
Faisable, pas faisable ??
Je bute avec le getVisible.
je vais essayer de mettre mon code en texte car mon xlsm est trop gros.
Merci
 

patricktoulon

XLDnaute Barbatruc
bonjour
bien sur que le visible d'un onglet ou d'un group ou de n'importe quel element peut être dynamique en fonction de la feuille active

donne moi juste le code xml du projet (le fichier exemple.xml) que tu a créé avec mon app
et dis moi quelle élément est sensé être visible/invisible en fonction de quelle feuille
 

patricktoulon

XLDnaute Barbatruc
comme ca vite fait un exemple
c'est un switcch group
les labels des groupe sont dynamiques aussi et prennent le nom de la feuille
demo.gif


le code xml du projet

XML:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<customUI azerty="http://schemas.microsoft.com/office/2009/07/customui" onLoad="CustomUIOnLoad">
    <!--CreatorRibbonX imageMso 2023 Version 4.9.9.3.8developed BY patricktoulon-->
    <!--project Ribbon name :switch groupByActivesheet-->
    <ribbon startFromScratch="false">
        <tabs>
            <tab id="tab_1" label="MES OUTILS PERSOS" insertBeforeQ="TabHome">
                <group id="group_0" getVisible="group_0_getVisible" imageMso="PageSetupSheetDialog" getLabel="group_0_getLabel" autoScale="true">
                    <button id="button_1" onAction="button_1_Click" size="large" label="bouton 1" tag="bouton 1" imageMso="AboveText"/>
                    <button id="button_2" onAction="button_2_Click" label="bouton 2" tag="bouton 2" imageMso="QueryBuilder" size="large"/>
                    <separator id="separator_1"/>
                    <button id="button_3" onAction="button_3_Click" label="bouton 3" tag="bouton 3" imageMso="MacroConvertMacrosToVisualBasic" size="large"/>
                    <button id="button_4" onAction="button_4_Click" label="bouton 4" tag="bouton 4" imageMso="SaveAll" size="large"/>
                    <dialogBoxLauncher>
                        <button id="button_dialBoxlaunchergroup_0" onAction="button_dialBoxlaunchergroup_0_Click"/>
                    </dialogBoxLauncher>
                </group>
                <group id="group_1" imageMso="PageSetupSheetDialog" getLabel="group_1_getLabel" getVisible="group_1_getVisible" autoScale="true">
                    <button id="button_5" onAction="button_5_Click" label="bouton 5" tag="bouton 5" imageMso="KeepServerVersion" size="large"/>
                    <button id="button_6" onAction="button_6_Click" label="bouton 6" tag="bouton 6" imageMso="ResourceDetailsDisplay" size="large"/>
                    <separator id="separator_2"/>
                    <button id="button_7" onAction="button_7_Click" label="bouton 7" tag="bouton 7" imageMso="PageColorPicker" size="large"/>
                    <button id="button_8" onAction="button_8_Click" label="bouton 8" tag="bouton 8" imageMso="NameUseInFormula" size="large"/>
                    <dialogBoxLauncher>
                        <button id="button_dialBoxlaunchergroup_1" onAction="button_dialBoxlaunchergroup_1_Click"/>
                    </dialogBoxLauncher>
                </group>
                <group id="group_2" imageMso="PageSetupSheetDialog" getLabel="group_2_getLabel" getVisible="group_2_getVisible" autoScale="true">
                    <button id="button_9" onAction="button_9_Click" label="bouton 9" tag="bouton 9" imageMso="TableAutoFormatStyle" size="large"/>
                    <button id="button_10" onAction="button_10_Click" label="bouton 10" tag="bouton 10" imageMso="SaveAsAccessTemplate" size="large"/>
                    <button id="button_11" onAction="button_11_Click" label="bouton 11" tag="bouton 11" imageMso="VideoDesignResetAndSize" size="large"/>
                    <separator id="separator_3"/>
                    <button id="button_12" onAction="button_12_Click" label="bouton 12" tag="bouton 12" imageMso="ReadingViewResearchPane" size="large"/>
                    <button id="button_13" onAction="button_13_Click" label="bouton 13" tag="bouton 13" imageMso="ObjectGallery" size="large"/>
                    <dialogBoxLauncher>
                        <button id="button_dialBoxlaunchergroup_2" onAction="button_dialBoxlaunchergroup_2_Click"/>
                    </dialogBoxLauncher>
                </group>
            </tab>
        </tabs>
    </ribbon>
</custo
voila ;)
 

Pièces jointes

  • Sample.xlsm
    25 KB · Affichages: 12
Dernière édition:

chindou

XLDnaute Occasionnel
Bonsoir le forum, bonsoir madmax, bonsoir Patricktoulon
merci madmax pour cette bonne idée, merci aussi pour ta réponse patricktoulon je vais utiliser ton code xml
pour l'adapter un mon projet seulement une question, Patrick est ce possible d'inserer un bouton sur mon ruban réalisé a l'aide "Custom UI editor" pour faire appel un UserForm
Merci madmax Merci patrick
Cordialement
 

patricktoulon

XLDnaute Barbatruc
Bonsoir le forum, bonsoir madmax, bonsoir Patricktoulon
merci madmax pour cette bonne idée, merci aussi pour ta réponse patricktoulon je vais utiliser ton code xml
pour l'adapter un mon projet seulement une question, Patrick est ce possible d'inserer un bouton sur mon ruban réalisé a l'aide "Custom UI editor" pour faire appel un UserForm
Merci madmax Merci patrick
Cordialement
re
bonjour
ben bien sur
tu fait ce que tu veux dans le callback du bouton (y compris appeler un userform)
 

patricktoulon

XLDnaute Barbatruc
re
exemple 4 boutons formulaire pour 4 userform
1 seul callback
le code xml
XML:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="CustomUIOnLoad">
    <!--CreatorRibbonX imageMso 2023 Version 4.9.9.3.8developed BY patricktoulon-->
    <!--project Ribbon name :boutoncalluserform-->
    <ribbon startFromScratch="false">
        <tabs>
            <tab id="tab_1" label="MES FORMULAIRES">
                <group id="group_0" label="bouton userform">
                    <button id="button_1" onAction="onAction_clickMultipleButton1" label="formulaire 1" tag="1" size="large" imageMso="AccessFormWizard"/>
                    <separator id="separator_1"/>
                    <button id="button_2" onAction="onAction_clickMultipleButton1" label="formulaire 2" tag="2" size="large" imageMso="EditLabel"/>
                    <separator id="separator_2"/>
                    <button id="button_3" onAction="onAction_clickMultipleButton1" label="formulaire 3" tag="3" size="large" imageMso="LegendInsertGallery"/>
                    <separator id="separator_3"/>
                    <button id="button_4" onAction="onAction_clickMultipleButton1" label="formulaire 4" tag="4" size="large" imageMso="JotHideBodyText"/>
                </group>
            </tab>
        </tabs>
    </ribbon>
</customUI>

le code des callback

VB:
'callback created by [[''creatorRibbonX'']]
'[createRibbonX Application] created by (''patricktoulon'')
'Version 2023  4.9.9.X.X
'POUR MEMO 4 fonctions importantes à connaitre pour les controls dynamiques
'L 'objet IRibbonUI possède 4 méthodes :
'1° myribbon.Invalidate() qui actualise en une seule fois tous les contrôles personnalisés du classeur.
'2° myribbon.InvalidateControl("Id du control") qui actualise un contrôle particulier (ControlID correspond à l'identificateur unique du contrôle).
'3° myRibbon.ActivateTab ("id de l'onglet à activer")qui active l'onglet désigné par son ID dans les parenthèses
'4° myRibbonInvalidateControlMso ("Id de l'element"(onglet/group/control) )qui actualise  l'element désigné par son ID dans les parenthèses



'Nom du projet:[C:\Users\patricktoulon\Desktop\CreatorRibbonX V4.9 et V5.0\creatorRibbonX 4.9.9.X\Project_boutoncalluserform\exemple.xml]
'créé le:[07/11/2023]
'l'event ribbon onLoad
Public myRibbon As IRibbonUI    ' {Variable pour l'object ribbon}

'Callback for customUI.onLoad
Sub CustomUIOnLoad(ribbon As IRibbonUI)
    Set myRibbon = ribbon
End Sub


'procedure {onAction} du bouton [ID:''button_1''  Label:''formulaire 1'']'dans le parent [group_0''  Label:''bouton userform'']
Sub onAction_clickMultipleButton1(control As IRibbonControl)
    Select Case control.Tag
    Case 1: UserForm1.Show
    Case 2: UserForm2.Show
    Case 3: UserForm3.Show
    Case 4: UserForm4.Show
    End Select
End Sub
voila 4 bouton dans un onglet perso en size large et icon excel

après perso a moins que tu sois un cador en xml customUI je vois pas pourquoi utiliser customUI editor
alors que je vous ai fait une app en français qui ne nécessite aucune connaissance en codage xml, elle fait tout pour toi ; juste quelques clicks et texte tapé dans des textbox
 

Pièces jointes

  • Sample.xlsm
    19.8 KB · Affichages: 10

Discussions similaires

E
Réponses
8
Affichages
1 K
E
Réponses
0
Affichages
570

Statistiques des forums

Discussions
315 093
Messages
2 116 137
Membres
112 668
dernier inscrit
foyoman