Microsoft 365 Création d'un nouvel onglet du ruban en vba et y attacher 4 macros complémentaires (MAC et PC)

RyuAutodidacte

XLDnaute Impliqué
Supporter XLD
Bonjour,

j'ai beau chercher partout mais je ne trouve de solution pour le moment …

Comme l'onglet "Acceuil" qui existe dans le ruban, je cherche à pourvoir créer par vba un nouvel onglet "TOTO" et y insérer 4 macros, provenant d'un complément Excel d'un fichier xlam déjà insérer par macro :
VB:
Sub Add_AddIn() 'version Mac (peut être PC aussi pouvez vous confirmer SVP)
Dim addInPath As String
    addInPath = "MonChemin/TEST.xlam"
    AddIns.Add addInPath
    AddIns("TEST").Installed = True '
End Sub
Le but est de pourvoir faire une automatisation d'installation sur plusieurs utilisateurs Mac et PC

merci d'avance pour vos réponses

Ryu
 

RyuAutodidacte

XLDnaute Impliqué
Supporter XLD
J'aime bien celui-ci :
1689352456588.png


les callbacks et attributs sont vides c'est un bug ou c'est juste pour montrer l'autre onglet ?

mais la capture que tu montre ne respecte pas la règle pour les boutons
tu parles de quelle capture ?
 

patricktoulon

XLDnaute Barbatruc
re
tiens c'est le ruban de commande dur creator Mac
(fait avec le creatorRibbonX pour windows 🤣 🤣 🤣)
XML:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="CustomUIOnLoad">
    <!--creatorRiBBonX application V imageMso 2023 4.9.9.2 developed BY patricktoulon  -->
    <!--project Ribbon name :mac creatorribbon-->
    <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="TabAddIns" visible="false"/>
            <tab id="tab_1" label="CRÉATORRIBBONZ_FOR_MAC" insertBeforeQ="TabAddIns">
                <group id="group_0" label="Projet">
                    <menu id="menu_1" label="PROJECT" size="large" imageMso="MicrosoftProject" itemSize="large">
                        <button id="button_1" onAction="Nouveau_projet_Click" label="Nouveau projet" tag="Nouveau projet" imageMso="FileNew"/>
                        <button id="button_2" onAction="recharger_un__Projet_Click" label="recharger un  Projet" tag="recharger un  Projet" imageMso="BibliographyAddNewSource"/>
                        <button id="button_3" onAction="Enregistrer_le_projet_Click" label="Enregistrer le projet" tag="Enregistrer le projet" imageMso="FileSaveAs"/>
                        <button id="button_18" onAction="button_18_Click" label="Reset" tag="Reset" imageMso="BlackAndWhiteGrayscale"/>
                        <menuSeparator id="menuSeparator_1" title="OUTILS"/>
                        <button id="button_4" onAction="voir_le_xml_Click" label="voir le xml" tag="voir le xml" imageMso="XmlDataRefresh"/>
                    </menu>
                </group>
                <group id="group_6" label="RIBBON">
                    <button id="button_17" onAction="button_17_Click" label="startFromScratch" tag="startFromScratch" imageMso="FieldInsert"/>
                </group>
                <group id="group_3" label="les conteneurs">
                    <menu id="menu_2" label="les Conteneurs" size="large" imageMso="DiagramShapeInsertClassic" itemSize="large">
                        <button id="button_9" onAction="Ajouter_un_Onglet_Click" label="Ajouter un Onglet" tag="Ajouter un Onglet" imageMso="TableConvertToRange"/>
                        <button id="button_10" onAction="Ajouter_un_Group_Click" label="Ajouter un Group" tag="Ajouter un Group" imageMso="ContentControlsGroup"/>
                        <button id="button_11" onAction="Ajouter_un_Box_Vertical_Click" label="Ajouter un Box Vertical" tag="Ajouter un Box Vertical" imageMso="GroupTextBoxArrange"/>
                        <button id="button_12" onAction="Ajouter_un_Box_horizontal_Click" label="Ajouter un Box horizontal" tag="Ajouter un Box horizontal" imageMso="GroupTextBoxArrange"/>
                        <button id="button_13" onAction="Ajouter_un_ButtonGroup_Click" label="Ajouter un ButtonGroup" tag="Ajouter un ButtonGroup" imageMso="UseVotingButtonsMenu"/>
                    </menu>
                </group>
                <group id="group_1" label="control basique">
                    <button id="button_24" onAction="Add_Button_Click" label="Add Button" tag="Add Button" imageMso="ActiveXButton"/>
                    <button id="button_25" onAction="Add_ToggleButton_Click" label="Add ToggleButton" tag="Add ToggleButton" imageMso="ActiveXToggleButton"/>
                    <button id="button_27" onAction="Add_item_Click" label="Add item" tag="Add item" imageMso="BulletListDefault"/>
                    <button id="button_16" onAction="button_16_Click" label="Add editBox" tag="Add editBox" imageMso="ActiveXTextBox"/>
                </group>
                <group id="group_4" label="les controls liste et autres">
                    <button id="button_5" onAction="button_5_Click" imageMso="ActiveXComboBox" label="Add comboBox" tag="Add comboBox"/>
                    <button id="button_6" onAction="button_6_Click" imageMso="ActiveXComboBox" label="Add dropDown" tag="Add dropDown"/>
                    <button id="button_26" onAction="Add_splitButton_Click" label="Add splitButton" tag="Add splitButton" imageMso="ActiveXSpinButton"/>
                    <button id="button_7" onAction="button_7_Click" imageMso="CategorizeMenu" label="Add gallery" tag="Add gallery"/>
                    <button id="button_14" onAction="Ajouter_un_menu_Click" label="Ajouter un menu" tag="Ajouter un menu" imageMso="ColorGrayscaleMenu"/>
                    <button id="button_15" onAction="button_15_Click" label="Add dynamicMenu" tag="Add dynamicMenu" imageMso="DataOptionsMenu"/>
                </group>
                <group id="group_2" label="changer le texte de l element">
                    <editBox id="editBox_2" label="le tag" sizeString="WWWWWWWWWWWWWWW" onChange="editBox_2_onChange"/>
                    <button id="button_8" onAction="button_8_Click" enabled="false"/>
                    <editBox id="editBox_1" sizeString="WWWWWWWWWWWWWWW" onChange="editBox_1_onChange" label="Label"/>
                </group>
                <group id="group_5" label="divers elements">
                    <button id="button_20" onAction="button_20_Click" label="Ajouter un separator" tag="Ajouter un separator" imageMso="EndOfDocument"/>
                    <button id="button_21" onAction="button_21_Click" label="Ajouter un menuseparator" tag="Ajouter un menuseparator" imageMso="AsianLayoutMenu"/>
                    <button id="button_22" onAction="button_22_Click" label="Ajouter un labelControl" tag="Ajouter un labelControl" imageMso="PivotTableSelectLabel"/>
                </group>
            </tab>
            <tab label="CALLBACK ET ATTRIBUTS" id="tab_2" insertBeforeQ="TabAddIns">
                <group id="group_7" label="les controls simples">
                    <editBox id="editBox_3" onChange="editBox_3_onChange" label="size"/>
                    <editBox id="editBox_4" onChange="editBox_4_onChange" label="enabled"/>
                    <editBox id="editBox_5" onChange="editBox_5_onChange" label="tag"/>
                    <button id="button_19" onAction="button_19_Click" imageMso="AppointmentColor1"/>
                    <button id="button_23" onAction="button_23_Click" imageMso="AppointmentColor10"/>
                    <button id="button_28" onAction="button_28_Click" imageMso="AppointmentColor1"/>
                    <separator id="separator_1"/>
                    <separator id="separator_2"/>
                    <editBox id="editBox_12" onChange="editBox_12_onChange" label="OnAction"/>
                    <editBox id="editBox_13" onChange="editBox_13_onChange" label="onChange"/>
                    <editBox id="editBox_14" onChange="editBox_14_onChange" label="getEnabled"/>
                    <button id="button_29" onAction="button_29_Click" imageMso="AppointmentColor8"/>
                    <button id="button_30" onAction="button_30_Click" imageMso="AppointmentColor7"/>
                    <button id="button_31" onAction="button_31_Click" imageMso="AppointmentColor8"/>
                    <separator id="separator_5"/>
                    <separator id="separator_6"/>
                    <editBox id="editBox_15" onChange="editBox_15_onChange" label="getPressed"/>
                    <editBox id="editBox_16" onChange="editBox_16_onChange" label="getVisible"/>
                    <editBox id="editBox_17" onChange="editBox_17_onChange" label="getText"/>
                    <button id="button_32" onAction="button_32_Click" imageMso="AppointmentColor5"/>
                    <button id="button_33" onAction="button_33_Click" imageMso="AppointmentColor1"/>
                    <button id="button_34" onAction="button_34_Click" imageMso="AppointmentColor5"/>
                    <separator id="separator_7"/>
                    <separator id="separator_8"/>
                    <editBox id="editBox_18" onChange="editBox_18_onChange" label="getLabel"/>
                    <editBox id="editBox_19" onChange="editBox_19_onChange" label="getImage"/>
                    <editBox id="editBox_20" onChange="editBox_20_onChange" label="getSize"/>
                    <button id="button_35" onAction="button_35_Click" imageMso="AppointmentColor2"/>
                    <button id="button_36" onAction="button_36_Click" imageMso="AppointmentColor10"/>
                    <button id="button_37" onAction="button_37_Click" imageMso="AppointmentColor2"/>
                    <separator id="separator_9"/>
                </group>
                <group id="group_8" label="les gallery et comboBox et dropDown">
                    <separator id="separator_10"/>
                    <editBox id="editBox_6" label="columns" onChange="editBox_6_onChange" sizeString="WWW"/>
                    <editBox id="editBox_7" onChange="editBox_7_onChange" label="rows" sizeString="WWW"/>
                    <editBox id="editBox_8" onChange="editBox_8_onChange" label="itemHeight" sizeString="WWW"/>
                    <separator id="separator_3"/>
                    <separator id="separator_4"/>
                    <editBox id="editBox_9" onChange="editBox_9_onChange" label="itemWidth" sizeString="WWW"/>
                    <editBox id="editBox_10" onChange="editBox_10_onChange" label="getItemCount"/>
                    <editBox id="editBox_11" onChange="editBox_11_onChange" label="getItemLabel"/>
                    <button id="button_38" onAction="button_38_Click" enabled="false"/>
                    <button id="button_39" onAction="button_39_Click" imageMso="AppointmentColor9"/>
                    <button id="button_40" onAction="button_40_Click" imageMso="AppointmentOutOfOffice"/>
                    <separator id="separator_11"/>
                    <editBox id="editBox_21" onChange="editBox_21_onChange" label="getItemImage" sizeString="WWWWWWWWWW"/>
                    <editBox id="editBox_22" onChange="editBox_22_onChange" label="getitemId" sizeString="WWWWWWWWWW"/>
                    <editBox id="editBox_23" onChange="editBox_23_onChange" label="getselectItemindex" sizeString="WWWWWWWWWW"/>
                    <button id="button_41" onAction="button_41_Click" imageMso="AppointmentColor9"/>
                    <button id="button_42" onAction="button_42_Click" imageMso="AppointmentColor6"/>
                    <button id="button_44" onAction="button_44_Click" imageMso="AppointmentColor9"/>
                    <separator id="separator_14"/>
                    <separator id="separator_15"/>
                    <editBox id="editBox_24" onChange="editBox_24_onChange" label="invalidateControlOnDrop"/>
                    <editBox id="editBox_25" onChange="editBox_25_onChange" label="getContent"/>
                    <editBox id="editBox_26" onChange="editBox_26_onChange" label="getDescription"/>
                    <button id="button_43" onAction="button_43_Click" imageMso="AppointmentColor8" tag="getDescription"/>
                    <button id="button_45" onAction="button_45_Click" imageMso="AppointmentColor5"/>
                    <button id="button_46" onAction="button_46_Click" imageMso="AppointmentColor1"/>
                </group>
            </tab>
        </tabs>
    </ribbon>
</customUI>
LOL
 

RyuAutodidacte

XLDnaute Impliqué
Supporter XLD
alors il est pas beau mon ruban
Si c'est pas mal, mais j'aurais bien vu une séparation des attributs et des callbacks (comme tu as sur ton créator) via 2 onglets ou un switch group mais dans ruban :

1689440641633.png


Par contre j'ai une autre question, il me semble avoir vu dans l'une de tes dernières vidéo que tu utilisais de l'activeX dans ton userform.
Sur Mac on ne peut pas les utiliser par contre on peut utiliser les autres control, textbox, etc … du moment que c'est pas ActiveX.
La question que je me pose alors (sur certains point les codes peuvent varier légèrement), crois tu qu'il serait possible de faire le créator à l'identique que sur PC ?

PS : J'aimerai bien que l'on puisse comme la dernière upgrade de ta vidéo si c'est possible ;)
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
pour le moment ou j'en suis
le moteur XML est OK
le ruban ben t'es jamais content ,il faut toujours changer quelque chose 🤣🤣
le visuel a rendre plus attrayant(couleur etc...)
associer le ruban au moteur classe Mac (comme les boutons et textbox de mon userform a son moteur xxml2)

et on est pas encore arrivé aux fichiers( et c'est là que je vais avoir besoins de toi)
a savoir
creation de dossier
enregistrer un fichier sous une forme ou une autre pour sauvegarder le projet
la fonction pour le recharger en découlera aussi
la fonction pour décompiler"ZIP" le fichier excel(si c'est possible par vba sur mac )
et forcement le recompiler
la fonction pour modifier un xml (en string pour mac) pour les diverses modif des existants

si tu croyais que l'on était arrivé tu rêve 🤣🤣🤣
et il y en a d'autres qui découlera de que je viens d'énumérer

mais bon si on s'amuse a modifier le ruban ou le visuel avant d'avoir un truc OP c'est pas demain heinn!!!
 

RyuAutodidacte

XLDnaute Impliqué
Supporter XLD
des fois tu en a des drôle toi 🤣 🤣 🤣 🤣
Sur PC ça m'étonnerait pas que tu utilises de l'ActiveX puisque cela apporte des choses supplémentaire

je sais pas si tu te rends compte du boulot que c'est
Si si je me rend bien compte, d'ailleurs c'est pour cela que je me suis dirigé sur 2 collections :
parent et enfant
pour simplifier le travail


PS : avant que l'on se mette à collaborer sur le projet Mac, je venais juste de finir le code que je voulais faire … bien sur il me manquait les paramètres des attributs pour que tout soit correct …
 
Dernière édition:

RyuAutodidacte

XLDnaute Impliqué
Supporter XLD
si tu croyais que l'on était arrivé tu rêve 🤣🤣🤣
et il y en a d'autres qui découlera de que je viens d'énumérer
non je le sais qu'on en est loin

mais bon si on s'amuse a modifier le ruban ou le visuel avant d'avoir un truc OP c'est pas demain heinn!!!
tu me demandes mon avis je te réponds ;)
il est évident qu'il faut se pencher sur le code est les fonctions avant de les associer au graphisme/présentation visuel
 

RyuAutodidacte

XLDnaute Impliqué
Supporter XLD
a savoir
creation de dossier
enregistrer un fichier sous une forme ou une autre pour sauvegarder le projet
la fonction pour le recharger en découlera aussi
la fonction pour décompiler"ZIP" le fichier excel(si c'est possible par vba sur mac )
et forcement le recompiler
la fonction pour modifier un xml (en string pour mac) pour les diverses modif des existants
Re,

il faudra que l'on s'appelle en MP (Skype ou autre) pour voir plus en détails
 

Statistiques des forums

Discussions
312 207
Messages
2 086 250
Membres
103 165
dernier inscrit
thithithi78