Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 CreatorRibbonX ImageMso 2023

Philippe17

XLDnaute Occasionnel
Supporter XLD
Bonjour à toutes et à tous,
Tout d'abord, je remercie Patrick pour l'assistance et la conception de (CreatorRibbonX ImageMso 2023), c'est un outil très fonctionnel, puissant et cerise sur le gâteau, facile à utiliser même quand tu ne connais pas grand-chose, prendre seulement le fil de discussions dès le début (CreatorRibbonX ImageMso 2023) c'est très simple. J'ai donc créé mon premier ruban adapté à mon classeur uniquement (version CreatorRibbonX ImageMso 2023 V4.9.X 4.9.9.3.8)

Mon premier ruban :


Franchement, je vous le recommande

Je vais en profiter pour poser une question, possible d'afficher la date du jour dans le ruban format comme sur l'image ?



Bonne fin de journée à toutes et à tous,

Philippe
 
Solution
Bonjour Philippe
re
oui en effet la version 4.xx.8 n'autorise pas
perso ma version est complètement debloquée
je débloque petit a petit les choses car au départ ça s'adresse vraiment au débutants
c’était pour leur eviter de confondre et mettre du callback dynamique partout
en attendant
tu n'a qua coller la partie qui t’intéresse de mon code en ouvrant ton exemple .xml
et ré ouvrir après avec le creator
sinon tu me donne ton exemple .xml je te le fait en deux proposition

patricktoulon

XLDnaute Barbatruc
re
Bon alors
après la fete de cette reussiste viennent les remarques
donc :
1 pourquoi utiliser le callback getvisible pour les avoir toujours a true
c'est inutile et ca fait tourner vba pour 2 saucisses

3 pour les getsize c'est pareil même remarque

3 afin de te retrouver dans les callbacks tu a la possibilité de créer les appel avec le label des éléments plutôt que leur ID (tu n'a pas du encore arriver a cette vidéo )

4 les icones dans les group c'est mieux pour l'app reduite

5 (et là ca se discute) quand on met un dropdown et qu'on utilise des buttons comme items, autant faire un menu qui s'alignera parfaitement bien avec les autres éléments dans son group et qui puis est on peut faire des menu (que j'appelle menu à thème) voir démo ci dessous

Bon il est vrai que la version est bridée pour les débutants ça peut peut être vous bloquer dans votre création
donc sans plus attendre démo de la reprise



et pour le exemple xml ce sera
XML:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<customUI azerty="http://schemas.microsoft.com/office/2009/07/customui" onLoad="CustomUIOnLoad" loadImage="Ribbon_loadImage">
    <!--CreatorRibbonX imageMso 2023 Version 4.9.9.3.8developed BY patricktoulon-->
    <!--project Ribbon name :Ruban_Budget_Compte_Philippe-->
    <ribbon startFromScratch="false">
        <tabs>
            <tab idMso="TabHome" visible="false"/>
            <tab idMso="TabInsert" visible="false"/>
            <tab idMso="TabPageLayoutExcel" visible="false"/>
            <tab idMso="TabFormulas" visible="false"/>
            <tab idMso="TabData" visible="false"/>
            <tab idMso="TabReview" visible="false"/>
            <tab idMso="TabView" visible="false"/>
            <tab idMso="TabDeveloper" visible="false"/>
            <tab idMso="TabAddIns" visible="false"/>
            <tab id="tab_1" label="BUDGET COMPTE PHILIPPE" getVisible="tab_1_getVisible">
                <group id="group_9" label="Ouvrir" imageMso="JotCloseFolder">
                    <button id="button_17" onAction="Ouvrir_un_Fichier_Click" label="Ouvrir un Fichier" tag="Ouvrir un Fichier" imageMso="DesignerOpen" size="large"/>
                </group>
                <group id="group_6" label="Accueil" imageMso="BlogHomePage">
                    <button id="button_11" onAction="Tableau_de_Bord_Click" label="Tableau de Bord" tag="Tableau de Bord" imageMso="BlogHomePage" size="large"/>
                </group>
                <group id="group_1" imageMso="FileSave" label="Contrôle Fermeture">
                    <button id="button_3" onAction="Ferme_sans_sauvegarder_Click" label="Ferme sans sauvegarder" tag="Ferme sans sauvegarder" imageMso="XDPPClose"/>
                    <button id="button_1" onAction="Sauvegarde_sans_quitter_Click" tag="Sauvegarde sans quitter" imageMso="FileSaveAs" label="Sauvegarde sans quitter" supertip="En cliquant ici, vous allez sauvegarder le classeur sans quitter Excel."/>
                    <button id="button_2" onAction="Sauvegarde_et_quitter_Click" label="Sauvegarde et quitter" tag="Sauvegarde et quitter" imageMso="FileSave" supertip="En cliquant ici, vous allez sauvegarder le classeur et quitter l'application Excel. "/>
                </group>
                <group id="group_4" label="Fenêtre" imageMso="HeaderFooterFileNameInsert">
                    <button id="button_6" onAction="Agrandir_l'écran_Click" label="Agrandir l'écran" tag="Agrandir l'écran" imageMso="_3DPerspectiveIncrease" size="large"/>
                    <button id="button_7" onAction="Diminuer_l'écran_Click" label="Diminuer l'écran" tag="Diminuer l'écran" imageMso="_3DPerspectiveDecrease" size="large"/>
                </group>
                <group id="group_10" label="Date du jour" imageMso="CalculatedDateTime">
                    <labelControl id="labelControl_1" label="Nous sommes le :"/>
                    <button id="jourtoday" onAction="jourtoday_Click" getLabel="jourtoday_getLabel"/>
                    <button id="datos" onAction="datos_Click" tag="datos" getLabel="datos_getLabel"/>
                </group>
                <group id="group_5" label="Gestions des Dépenses" imageMso="HeaderFooterFileNameInsert">
                    <button id="button_8" onAction="Enregistrer_une_dépense_Click" label="Enregistrer une dépense" tag="Enregistrer une dépense" imageMso="ScreenNavigatorBack"/>
                    <button id="button_9" onAction="Journal_des_dépenses_Click" label="Journal des dépenses" tag="Journal des dépenses" imageMso="ScreenNavigatorBack"/>
                    <menu id="menu_1" imageMso="DateAndTimeInsert" label="Changer le mois">
                        <menuSeparator id="menuSeparator_1" title="TRIMESTRE 1"/>
                        <button id="button_5" label="JANVIER" tag="JANVIER" onAction="JANVIER_Click"/>
                        <button id="button_18" label="FEVRIER" tag="FEVRIER" onAction="FEVRIER_Click"/>
                        <button id="button_19" label="MARS" tag="MARS" onAction="MARS_Click"/>
                        <menuSeparator id="menuSeparator_2" title="TRIMESTRE 2"/>
                        <button id="button_20" onAction="AVRIL_Click" label="AVRIL" tag="AVRIL"/>
                        <button id="button_27" onAction="MAI_Click" label="MAI" tag="MAI"/>
                        <button id="button_28" onAction="JUIN_Click" label="JUIN" tag="JUIN"/>
                        <menuSeparator id="menuSeparator_3" title="TRIMESTRE 3"/>
                        <button id="button_29" onAction="JUILLET_Click" label="JUILLET" tag="JUILLET"/>
                        <button id="button_30" onAction="AOUT_Click" label="AOUT" tag="AOUT"/>
                        <button id="button_31" onAction="SEPTEMBRE_Click" label="SEPTEMBRE" tag="SEPTEMBRE"/>
                        <menuSeparator id="menuSeparator_4" title="TRIMESTRE 4"/>
                        <button id="button_32" onAction="OCTOBRE_Click" label="OCTOBRE" tag="OCTOBRE"/>
                        <button id="button_33" onAction="NOVEMBRE_Click" label="NOVEMBRE" tag="NOVEMBRE"/>
                        <button id="button_34" onAction="DECEMBRE_Click" label="DECEMBRE" tag="DECEMBRE"/>
                    </menu>
                </group>
                <group id="group_3" label="utilitaires" imageMso="AdpDiagramRelationships">
                    <button id="button_21" onAction="Calculatrice_Click" label="Calculatrice" tag="Calculatrice" imageMso="Calculator"/>
                    <button id="button_22" onAction="button_22_Click" label="Bouton libre" tag="Bouton libre" imageMso="AcceptInvitation"/>
                    <button id="button_23" onAction="button_23_Click" label="Bouton libre" tag="Bouton libre" imageMso="AcceptInvitation"/>
                </group>
                <group id="group_7" label="Administration" imageMso="AdministrationHome">
                    <button id="button_15" onAction="Base_de_Données_Click" label="Base de Données" tag="Base de Données" imageMso="AddInManager"/>
                    <button id="button_16" onAction="Feuille_de_Calcul_Click" label="Feuille de Calcul" tag="Feuille de Calcul" imageMso="AddInManager"/>
                    <button id="button_14" onAction="Tableau_TCD_Click" tag="Tableau TCD" imageMso="AddInManager" label="Tableau TCD"/>
                </group>
                <group id="group_8" label="Case à cocher" imageMso="ActiveXCheckBox">
                    <box boxStyle="vertical" id="box_1">
                        <button id="button_12" onAction="Supprime_toutes_les_cases_Click" label="Supprime toutes les cases" tag="Supprime toutes les cases" imageMso="PlayMacro"/>
                        <button id="button_10" onAction="Décoche_toutes_les_cases_Click" label="Décoche toutes les cases" tag="Décoche toutes les cases" imageMso="PlayMacro"/>
                        <button id="button_13" onAction="Lie_toutes_les_cases_Click" label="Lie toutes les cases" tag="Lie toutes les cases" imageMso="PlayMacro"/>
                    </box>
                </group>
                <group id="group_11" label="Impréssion" imageMso="CatalogMergeMergeToPrinter">
                    <button id="button_24" onAction="Imprimante_Click" label="Imprimante" tag="Imprimante" imageMso="FilePrint"/>
                    <button id="button_25" onAction="Export_PDF_Click" label="Export PDF" tag="Export PDF" imageMso="FileSaveAsPdf"/>
                    <button id="button_26" onAction="button_26_Click" label="Bouton libre" tag="Bouton libre" imageMso="AcceptInvitation"/>
                </group>
                <group id="group_2" label="Code VBA" imageMso="CodeEdit">
                    <button id="button_4" onAction="Visual_Basic_Editor_Click" imageMso="VisualBasic" label="Visual Basic Editor" tag="Visual Basic Editor" size="large"/>
                </group>
            </tab>
        </tabs>
    </ribbon>
</customUI>

les calback
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\reprise d un customUI_23-05-2024_10 19 22\exemple.xml]
'créé le:[23/05/2024]
'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

'l'event ribbon Load_Image
Public Sub Ribbon_loadImage(imageId As String, ByRef image)
    Set image = LoadPicture(ThisWorkbook.Path & "\images\" & imageId)
End Sub

'procedure  {getvisible}  du tab[ID:''tab_1''  Label:''BUDGET COMPTE PHILIPPE'']'dans le parent [provix3''  ]
'valeur par defaut
Sub tab_1_getVisible(control As IRibbonControl, ByRef returnedVal)
    returnedVal = True
End Sub

'procedure {onAction} du bouton [ID:''button_17''  Label:''Ouvrir un Fichier'']'dans le parent [group_9''  Label:''Ouvrir'']
Sub Ouvrir_un_Fichier_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    'Ouvrir un Fichier
End Sub

'procedure {onAction} du bouton [ID:''button_11''  Label:''Tableau de Bord'']'dans le parent [group_6''  Label:''Accueil'']
Sub Tableau_de_Bord_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    'Tableau de Bord
End Sub

'procedure {onAction} du bouton [ID:''button_3''  Label:''Ferme sans sauvegarder'']'dans le parent [group_1''  Label:''Contrôle Fermeture'']
Sub Ferme_sans_sauvegarder_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    'Ferme sans sauvegarder
End Sub

'procedure {onAction} du bouton [ID:''button_1''  Label:''Sauvegarde sans quitter'']'dans le parent [group_1''  Label:''Contrôle Fermeture'']
Sub Sauvegarde_sans_quitter_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    'Sauvegarde sans quitter
End Sub

'procedure {onAction} du bouton [ID:''button_2''  Label:''Sauvegarde et quitter'']'dans le parent [group_1''  Label:''Contrôle Fermeture'']
Sub Sauvegarde_et_quitter_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    'Sauvegarde et quitter
End Sub

'procedure {onAction} du bouton [ID:''button_6''  Label:''Agrandir l'écran'']'dans le parent [group_4''  Label:''Fenêtre'']
Sub Agrandir_l()    'écran_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    'Agrandir l'écran
End Sub

'procedure {onAction} du bouton [ID:''button_7''  Label:''Diminuer l'écran'']'dans le parent [group_4''  Label:''Fenêtre'']
Sub Diminuer_l()    'écran_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    'Diminuer l'écran
End Sub

'procedure {onAction} du bouton [ID:''jourtoday''  ]'dans le parent [group_10''  Label:''Date du jour'']
Sub jourtoday_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    '
End Sub

'procedure  {getLabel}  du button[ID:''jourtoday''  ]'dans le parent [group_10''  Label:''Date du jour'']
'valeur par defaut
Sub jourtoday_getLabel(control As IRibbonControl, ByRef label)
    Dim Jour$, ecsp$
    Jour = WeekdayName(Weekday(Date, vbUseSystemDayOfWeek))
     ecsp = Application.Rept(".", (15 - Len(Jour)) / 2)
    
     label = " " & UCase(Jour)
End Sub

'procedure {onAction} du bouton [ID:''datos''  ]'dans le parent [group_10''  Label:''Date du jour'']
Sub datos_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    '
End Sub

'procedure  {getLabel}  du button[ID:''datos''  ]'dans le parent [group_10''  Label:''Date du jour'']
'valeur par defaut
Sub datos_getLabel(control As IRibbonControl, ByRef label)
    Dim D$
    D = "[ " & Format(Date, "dd / mm / yyyy") & " ]"
     label = D
End Sub

'procedure {onAction} du bouton [ID:''button_8''  Label:''Enregistrer une dépense'']'dans le parent [group_5''  Label:''Gestions des Dépenses'']
Sub Enregistrer_une_dépense_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    'Enregistrer une dépense
End Sub

'procedure {onAction} du bouton [ID:''button_9''  Label:''Journal des dépenses'']'dans le parent [group_5''  Label:''Gestions des Dépenses'']
Sub Journal_des_dépenses_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    'Journal des dépenses
End Sub

'procedure {onAction} du bouton [ID:''button_5''  Label:''JANVIER'']'dans le parent [menu_1''  Label:''Changer le mois'']
Sub JANVIER_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    'JANVIER
End Sub

'procedure {onAction} du bouton [ID:''button_18''  Label:''FEVRIER'']'dans le parent [menu_1''  Label:''Changer le mois'']
Sub FEVRIER_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    'FEVRIER
End Sub

'procedure {onAction} du bouton [ID:''button_19''  Label:''MARS'']'dans le parent [menu_1''  Label:''Changer le mois'']
Sub MARS_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    'MARS
End Sub

'procedure {onAction} du bouton [ID:''button_20''  Label:''AVRIL'']'dans le parent [menu_1''  Label:''Changer le mois'']
Sub AVRIL_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    'AVRIL
End Sub

'procedure {onAction} du bouton [ID:''button_27''  Label:''MAI'']'dans le parent [menu_1''  Label:''Changer le mois'']
Sub MAI_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    'MAI
End Sub

'procedure {onAction} du bouton [ID:''button_28''  Label:''JUIN'']'dans le parent [menu_1''  Label:''Changer le mois'']
Sub JUIN_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    'JUIN
End Sub

'procedure {onAction} du bouton [ID:''button_29''  Label:''JUILLET'']'dans le parent [menu_1''  Label:''Changer le mois'']
Sub JUILLET_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    'JUILLET
End Sub

'procedure {onAction} du bouton [ID:''button_30''  Label:''AOUT'']'dans le parent [menu_1''  Label:''Changer le mois'']
Sub AOUT_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    'AOUT
End Sub

'procedure {onAction} du bouton [ID:''button_31''  Label:''SEPTEMBRE'']'dans le parent [menu_1''  Label:''Changer le mois'']
Sub SEPTEMBRE_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    'SEPTEMBRE
End Sub

'procedure {onAction} du bouton [ID:''button_32''  Label:''OCTOBRE'']'dans le parent [menu_1''  Label:''Changer le mois'']
Sub OCTOBRE_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    'OCTOBRE
End Sub

'procedure {onAction} du bouton [ID:''button_33''  Label:''NOVEMBRE'']'dans le parent [menu_1''  Label:''Changer le mois'']
Sub NOVEMBRE_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    'NOVEMBRE
End Sub

'procedure {onAction} du bouton [ID:''button_34''  Label:''DECEMBRE'']'dans le parent [menu_1''  Label:''Changer le mois'']
Sub DECEMBRE_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    'DECEMBRE
End Sub

'procedure {onAction} du bouton [ID:''button_21''  Label:''Calculatrice'']'dans le parent [group_3''  Label:''utilitaires'']
Sub Calculatrice_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    'Calculatrice
End Sub

'procedure {onAction} du bouton [ID:''button_22''  Label:''Bouton libre'']'dans le parent [group_3''  Label:''utilitaires'']
Sub button_22_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    'Bouton libre
End Sub

'procedure {onAction} du bouton [ID:''button_23''  Label:''Bouton libre'']'dans le parent [group_3''  Label:''utilitaires'']
Sub button_23_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    'Bouton libre
End Sub

'procedure {onAction} du bouton [ID:''button_15''  Label:''Base de Données'']'dans le parent [group_7''  Label:''Administration'']
Sub Base_de_Données_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    'Base de Données
End Sub

'procedure {onAction} du bouton [ID:''button_16''  Label:''Feuille de Calcul'']'dans le parent [group_7''  Label:''Administration'']
Sub Feuille_de_Calcul_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    'Feuille de Calcul
End Sub

'procedure {onAction} du bouton [ID:''button_14''  Label:''Tableau TCD'']'dans le parent [group_7''  Label:''Administration'']
Sub Tableau_TCD_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    'Tableau TCD
End Sub

'procedure {onAction} du bouton [ID:''button_12''  Label:''Supprime toutes les cases'']'dans le parent [box_1''  ]
Sub Supprime_toutes_les_cases_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    'Supprime toutes les cases
End Sub

'procedure {onAction} du bouton [ID:''button_10''  Label:''Décoche toutes les cases'']'dans le parent [box_1''  ]
Sub Décoche_toutes_les_cases_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    'Décoche toutes les cases
End Sub

'procedure {onAction} du bouton [ID:''button_13''  Label:''Lie toutes les cases'']'dans le parent [box_1''  ]
Sub Lie_toutes_les_cases_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    'Lie toutes les cases
End Sub

'procedure {onAction} du bouton [ID:''button_24''  Label:''Imprimante'']'dans le parent [group_11''  Label:''Impréssion'']
Sub Imprimante_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    'Imprimante
End Sub

'procedure {onAction} du bouton [ID:''button_25''  Label:''Export PDF'']'dans le parent [group_11''  Label:''Impréssion'']
Sub Export_PDF_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    'Export PDF
End Sub

'procedure {onAction} du bouton [ID:''button_26''  Label:''Bouton libre'']'dans le parent [group_11''  Label:''Impréssion'']
Sub button_26_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    'Bouton libre
End Sub

'procedure {onAction} du bouton [ID:''button_4''  Label:''Visual Basic Editor'']'dans le parent [group_2''  Label:''Code VBA'']
Sub Visual_Basic_Editor_Click(control As IRibbonControl)
    MsgBox " vous avez cliqué sur le [button] id:" & control.ID    'Visual Basic Editor
End Sub
 

Philippe17

XLDnaute Occasionnel
Supporter XLD
Bonsoir Patrick,
en effet, pour le menu, c'est mieux et top, je préfère oui. Je rectifie donc immédiatement mon Ruban, mais bon pour un débutant mon premier Sample était plutôt bien lol . J'ai donc bien compris que je n'ai pas fini de le modifier, car je découvre au quotidien la puissance et l'utilisation de CreatorRibbonX ImageMso merci pour cette création très utile pour les débutants,

Bonne soirée à toutes et à tous,

Philippe
 

patricktoulon

XLDnaute Barbatruc
re
oui je vous donne le choix pour le on action soit le abel+action soit le id+action
mais c'est mieux le label tu t'y retrouve plus facilement
les getvisible et getsize uniquement si tu compte faire la chose dynamiquement
sinon c'est visible ou size
a voir le prochain
 

Valtrase

XLDnaute Occasionnel
Bonjour à tous,
@GGI, peut-être en créant un bouton dédié, dans ce style.
XML:
<button idMso="ViewCode"
                            showLabel="true"
                            size="large"
                            label="Visual Basic"
                            screentip="Visual Basic (Alt+F11)"
                            supertip="Ouvrir l&#39;&#233;diteur Visual Basic"
                            imageMso="GroupMacro"
                            onAction="OnActionButton"
                            getVisible="GetVisible"
                            getEnabled="GetEnabled"/>
 
Dernière édition:
Bonjour le fil, le forum

@GGI il faut variabiliser l'affichage du menu développeur.
code XML
XML:
<tab idMso="TabDeveloper" getVisible="Menu_Developpeur" />

en callback dans le VBA
VB:
Sub RibbononLoad(ribbon As IRibbonUI)
    Set Mon_Ruban = ribbon
End Sub
Sub Menu_Developpeur(Control As IRibbonControl, ByRef returnedVal)
    returnedVal = Menu_Developpeur_Visible
End Sub

en appel dans le vba
VB:
Public Menu_Developpeur_Visible As Boolean

Sub Affiche_Desaffiche_Menu_Developpeur()
    Menu_Developpeur_Visible = Not Menu_Developpeur_Visible
    Mon_Ruban.Invalidate
End Sub

Cordialement,
Bernard_XLD

Ps: pour le nom de ruban, mettez ou gardez celui que vous utilisez bien sûr

[édition: je ne l'ai pas précisé mais pour que cela fonctionne, il faut que le menu développeur soit actif par défaut dans le ruban Excel, modifier sa propriété visible ne l'activera pas.]
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
pas mal @Bernard_XLD
mais a supposer que il y ai des autres switch visible pour d'autres éléments dans d'autres contextes
le mon_ruban.invalidate va tout refaire (réinitialisation)
c'est bien pour ça que dans le creatorRibbonXimageMso je construit le module callback avec des commentaire de rappel
dans l'exemple qui se pose aujourd'hui
on a un bouton qui est sensé masquer ou afficher l'onglet "Développeur" ID :"TabDeveloper"
et bien on va utiliser la fonction adéquate
pour le coup j'ai refait un projet
et voila le module callback( voir les commentaires 1°,2°,3°,4°)
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° myRibbon.InvalidateControlMso ("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_switch_onglet_developer_visible\exemple.xml]
'créé le:[22/12/2024]
'l'event ribbon onLoad
Public myRibbon As IRibbonUI ' {Variable pour l'object ribbon}
Dim boolbool As Boolean
'Callback for customUI.onLoad
Sub CustomUIOnLoad(ribbon As IRibbonUI)
Set myRibbon = ribbon
 End Sub


'procedure {getvisible} du tab[ID:''provix4'' ]'dans le parent [provix3'' ]
'valeur par defaut
Sub TabBuild_Getvisible(control As IRibbonControl, ByRef returnedVal)
 returnedVal = boolbool
End Sub

'procedure {onAction} du bouton [ID:''button_1'' Label:''onglet developpeur'']'dans le parent [group_0'' Label:''Groupe N° 1'']
Sub onglet_developpeur_Click(control As IRibbonControl)
boolbool = Not boolbool
myRibbon.InvalidateControlMso ("TabDeveloper")
End Sub

donc dans votre code ce sera
VB:
Mon_Ruban.InvalidateControlMso ("TabDeveloper")
on agit ainsi uniquement sur l'onglet développeur
ps: le bouton peut être placé dans un onglet existant suivre le tuto vidéo a ce sujet

Cordialement
patrick
 

Discussions similaires

Réponses
1
Affichages
716
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…