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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

RyuAutodidacte

XLDnaute Impliqué
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
 
j'avais pas mis les callback qd je t'ai donné le fichier, c'était juste pour tester sur nouveau fichier que j'ai enregistrer sous en xlsm nommé TEST puis transformer en zip
et à partir de là, pour tester j'ai tout fait dans applescript et le terminal pour creér le .rels et l'insérer directement dans le zip … j'ai juste récupérer le dossier customUI d'un projet pour aussi l'insérer directement dans le zip (il n y a pas eu de dezipage)

sinon en passant par le creator j'y ai mis les callbacks onAction et c'est ok sur le projet exemple dont je me suis servi
 
je crois que c'est pas la peine de tennuyer maintenant que j'ai tout mis en utf 8 on peut se contenter de garder mon system
creation xlsm--> convert zip--> extraction total dans projetUI
--> salade et mayonnaise -->on renvoie tout dans le zip--> reconversion en xlsm

et non tes callbaxk ne sont pas en utf-8 les accents sont transformés il ne marchent donc pas les bouton ne trouvent pas leurs sub
1723153617332.png

1723153693096.png


à l'inverse chez moi fait avec le creator
demo1.gif
 
allez arrête de te torturer j'"ai trouvé plus simple
on peut supprimer les accents du vbe en gardant ceux dans le customUI
change la sub changeCallback et on en parle plus 😉
1723155678862.png


VB:
'procedure {onAction} du bouton [ID:''button_72'' Label:''change onAction'']'dans le parent [groupecallback'' Label:''LES CALLBACKS'']
Sub ChangeCallback(control As IRibbonControl)
    Dim s, T$, defc$, newdefc$, noAccLab$, tb, tb2, i&
    If DocXml Is Nothing Then MsgBox "La variable docXml est vide veuillez redemerer le projet": Exit Sub
    tb = Split("é,ç,è,à,ô,û,ê", ","): tb2 = Split("e,c,e,a,o,u,e", ",")
    noAccLab = MyElement.GetAttribute("label")
    For i = 0 To UBound(tb): noAccLab = Replace(noAccLab, tb(i), tb2(i)): Next
    T = control.Tag
    Set MyElement = DocXml.getElementById(id:=[c3].Value)
    If Not MyElement Is Nothing Then

        If DocXml.AdmissibleCallback(T, MyElement) = True Then
            defc = MyElement.GetAttribute(T)
            If defc = "" Then defc = noAccLab & "_" & T
            newdefc = InputBox("changer ou modifier le CallBack : " & T, "Modifier un CallBack", defc)
            If newdefc <> "" Then
                MyElement.SetAttribute T, Replace(newdefc, " ", "_")
                Else: MyElement.RemoveAttribute (T)
            End If
        Else
            MsgBox "Ce CallBack n'est pas addmis pour cet element ou dans ce contexte"
        End If
    End If
    miseAjourTableAttribut MyElement
End Sub
 
RE
VB:
'procedure {onAction} du bouton [ID:''button_72'' Label:''change onAction'']'dans le parent [groupecallback'' Label:''LES CALLBACKS'']
Sub ChangeCallback(control As IRibbonControl)
    Dim s, T$, defc$, newdefc$, noAccLab$, tb, tb2, i&
    If DocXml Is Nothing Then MsgBox "La variable docXml est vide veuillez redemerer le projet": Exit Sub
    tb = Split("è,È,ê,Ê,î,Î,â,Â,ô,Ô,û,Û,ë,Ë,ï,Ï,ü,Ü,ç,Ç,æ,Æ", ","): tb2 = Split("e,E,e,E,o,I,a,A,p,O,u,U,e,E,i,I,u,U,c,C,ae,oe", ",")
    noAccLab = MyElement.GetAttribute("label")
    For i = 0 To UBound(tb): noAccLab = Replace(noAccLab, tb(i), tb2(i)): Next
    T = control.Tag
    Set MyElement = DocXml.getElementById(id:=[c3].Value)
    If Not MyElement Is Nothing Then

        If DocXml.AdmissibleCallback(T, MyElement) = True Then
            defc = MyElement.GetAttribute(T)
            If defc = "" Then defc = noAccLab & "_" & T
            newdefc = InputBox("changer ou modifier le CallBack : " & T, "Modifier un CallBack", defc)
            If newdefc <> "" Then
                MyElement.SetAttribute T, Replace(newdefc, " ", "_")
                Else: MyElement.RemoveAttribute (T)
            End If
        Else
            MsgBox "Ce CallBack n'est pas addmis pour cet element ou dans ce contexte"
        End If
    End If
    miseAjourTableAttribut MyElement
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour