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é
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
 

patricktoulon

XLDnaute Barbatruc
re
voici le module nommé "Modul_CreateXLfileMac" qui est dédié à ta partie
VB:
'****************************************************************************************************
'    __    _  _  _   _   _       _   _ _______  ___     ___     _  ___     _       ____ _______ ____
'   // \\ // // //  //  /\\     //  //   //    //  \\  // ||   // // ||   /\\     //      //   //
'  //__// \\// //  //  //__\   //  //   //    //   // //  ||  // //  ||  //__\   //      //   //__
' //  \\   // //  //  //   \\ //  //   //    //   // //   // // //   // //   \\ //      //   //
'//   //  // //__//  //    ////__//   //     \\__// //___// // //___// //    ////___   //   //___
'
'responsable et concepteur [operating System]du module "Modul_CreateXLfileMac"
'
'****************************************************************************************************
'Public modecreation
Sub createmacfichXL()

    Dim VBComp, cbBack, Codxml

    Dim SampleC$, SampleZIP, ProjetUI, Oapp, x&, i&, f
    Dim Cod$, Q14, elem, FolderCustomUI

    'chemin des dossiers et fichier
    SampleC = ThisWorkbook.Path & Application.PathSeparator & "Sample.xlsm"
    SampleZIP = ThisWorkbook.Path & Application.PathSeparator & "Sample.Zip"
    ProjetUI = ThisWorkbook.Path & Application.PathSeparator & "ProjetUI" 'dossier de dezipage temporaire
    FolderCustomUI = ThisWorkbook.Path & Application.PathSeparator & "customUI"

    If Dir(FolderCustomUI, vbDirectory) = vbNullString Then MkDir FolderCustomUI
    If Dir(SampleZIP) <> "" Then Kill SampleZIP: Do While Dir(SampleZIP) <> "": DoEvents: Loop
    If Dir(SampleC) <> "" Then Kill SampleC: Do While Dir(SampleC) <> "": DoEvents: Loop

    'creation du dossier de desipage temporaire
    If Dir(ProjetUI, vbDirectory) = vbNullString Then MkDir ProjetUI: Do While Dir(ProjetUI, vbDirectory) = vbNullString: DoEvents: Loop

    Application.DisplayAlerts = False
    Application.ScreenUpdating = False

    cdback = DocXml.generateCallBack
    
    'SI JE CLIK SUR CREATION
    If modecration = 1 Then
        Set wbk = Workbooks.Add
    Else 'sinon
        'boite de dialogue ici pour choisir un fichier [*.xls*] avec gestion d'annulation bien entendu
        ' la variable F  CONTIENT LE CHEMIN DU FICHIER  S2LECTIONN2
        Set wbk = Workbooks.Open(f)
    End If

'une fois le fichier excel ouvert on lui met le module callback et son code
    Set VBComp = wbk.VBProject.VBComponents.Add(1)
    VBComp.Name = "Modul_CallBack"
    VBComp.CodeModule.InsertLines 1, cdback
    DoEvents
    ActiveWorkbook.SaveAs Filename:=SampleC, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
    Workbooks("Sample.xlsm").Close

    'gestion d'attente pour laisser Mac (ordinateur pour fille) le temps de bien créer le fichier
    Do While Dir(SampleC) = "": DoEvents: Loop

    Name SampleC As SampleZIP 'conversion en fichier ZIP

    'gestion d'attente pour laisser Mac (ordinateur pour fille) le temps de bien faire la conversion
    Do While Dir(SampleZIP) = "": DoEvents: Loop

'//////////////////////////////////////////////////////////////////
'MAINTENANT TU DEZIPPE ICI dans ProjetUI !!!!!!!
'ton applescript de dezippage ici!!!!!

'//////////////////////////////////////////////////////////////////

'apres dezippage tout se trouve dans le dossier projetUI

'on commence par modifier le customUI.xml
   'creation du dossier customui dazns projetUI
   MkDir ProjetUI & Application.PathSeparator & "customUI"
    'intégration
    Codxml = DocXml.GenerateXml
    Codxml = "<?xml version=""1.0"" encoding=""utf-8"" standalone=""yes""?>" & vbCrLf & Codxml
    MacSaveXmlFileUTF_8 Codxml, ProjetUI & Application.PathSeparator & "customUI" & Application.PathSeparator & "customUI14.xml"


'ENSUITE
 'modification du fichier rels
    x = FreeFile: Open ProjetUI & "\_rels\.rels" For Input As #x: Cod = Input$(LOF(x), #x): Close #x
    Q14 = "<Relationship Id=""custo14"" Type=""http://schemas.microsoft.com/office/2007/relationships/ui/extensibility"" Target=""customUI/customUI14.xml""/>"
    Cod = Replace(Cod, "</Relationships>", Q14 & vbCrLf & "</Relationships>")
    MacSaveXmlFileUTF_8 Cod, ProjetUI & Application.PathSeparator & "_rels" & Application.PathSeparator & ".rels"


'IL NE TE RESTE PLUS QU'A REZIPPER LE TOUT

'et enfin reconversion du zip en xlsm
 Name SampleZIP As SampleC

    MsgBox "Creation du classeur ""Sample.XLSM"" éffectuée"
   
   'suppression du dossier "projetUI" on en a plus besoins
    RmDir ProjetUI

End Sub
 
Dernière édition:

RyuAutodidacte

XLDnaute Impliqué
Hi
qq palettes couleurs pour les couleurs dans la feuilles :

1721558765881.png
 

patricktoulon

XLDnaute Barbatruc
re
XML:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"  onLoad="CustomUIonLoad" >
    <ribbon startFromScratch="false" >
        <tabs>
            <tab idMso="TabDeveloper">
                <group id="gro19000423" label="sssss"  imageMso="JotRecordVideo"  insertBeforeQ="GroupControls" >
                    <button id="but19000521" label="qqqqqqqq"  size="large"  imageMso="HappyFace"  onAction="qqqqqqqq_onAction" />
                    <button id="but19000618" label="wwww"  size="large"  imageMso="QueryDelete"  onAction="wwww_onAction" />
                    <gallery id="gal19000716" label="ma gallery"  size="large"  imageMso="QueryBuilder"  columns="1"  itemHeight="40"  itemWidth="40"  onAction="ma_gallery_onAction" >
                        <item id="toto" label="toto"  imageMso="DatabaseOpenFromProject" />
                        <item id="titi" label="titi"  imageMso="NewMessageToContact" />
                        <item id="riri" label="riri"  imageMso="VoiceInsert" />
                    </gallery>
                </group>
            </tab>
            <tab id="tab19001105" label="Mon onglet perso" >
                <group id="gro19001203" label="Outils"  imageMso="DataValidationClearValidationCircles"  autoScale="true" >
                    <menu id="men19001231" label="truc muche"  size="large"  imageMso="TableDesign"  itemSize="large" >
                        <button id="but19010128" label="bidule"  imageMso="EquationProfessional"  onAction="bidule_onAction" />
                        <button id="but19010225" label="machin"  imageMso="VerticalSpacingDecrease"  onAction="machin_onAction" />
                        <button id="but19010325" label="chose"  imageMso="InternationalCurrency"  onAction="chose_onAction" />
                        <button id="but19010422" label="truc"  imageMso="WrapText"  onAction="truc_onAction" />
                    </menu>
                    <dynamicMenu id="dyn19010520" label="toto"  imageMso="JotShapeDiamond"  getContent="toto_getContent"  invalidateContentOnDrop="true" />
                    <separator id="sep19010617"/>
                    <button id="but19010715" label="Pierre"  size="large"  tag="Pierre"  imageMso="ParagraphSpacing"  onAction="Pierre_onAction" />
                    <button id="but19010812" label="Paul"  size="large"  tag="Paul"  imageMso="AddChartElementMenu"  onAction="Paul_onAction" />
                    <button id="but19010909" label="Jacques"  size="large"  tag="Jacques"  imageMso="WordArtChangeShapeGallery"  onAction="Jacques_onAction" />
                </group>
            </tab>
        </tabs>
    </ribbon>
</customUI>
 

Pièces jointes

  • sauvegarde des callbacks.txt
    2.8 KB · Affichages: 5

Statistiques des forums

Discussions
315 109
Messages
2 116 316
Membres
112 716
dernier inscrit
jean1234