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
Ce qui est important, c’est que cela puisse marcher sur Mac et PC même si c’est créé sur un Macpour le custo 2007 ça m’étonnerait que des mac tournent encore dessus
après c'est pas un truc important dans le sens ou il est facile de faire le replace 2006/01 par 2009/07
Tu m'en diras plus ce soir pour que je comprenne de quoi il en retourne exactement, avec 2 cerveaux ca peut le fairepar contre j'ai un véritable problème dans l'adaptation du moteur 2024
c'est le tableau des attributs qui n'engrange pas
j'ai beau chercher depuis hier je trouve pas pourquoi
Coolj'ai attaqué le generatecallback
après ça mon moteur 2024 customui sera fini
il ne restera plus que la greffe à l'interface
la fonction visual
et tes scriptlet Mac
Sub create_Zip()
'chemin du projet
Dim chemin As String, cheminZip As String, folderUI As String, wbk As Workbook, vbcomp As Variant
cheminxlsm = ThisWorkbook.Path & Application.PathSeparator & "monprojet.xlsm"
cheminZip = Replace(cheminxlsm, ".xlsm", ".zip")
folderUI = ThisWorkbook.Path & Application.PathSeparator & "ProjetUI"
'-----------------------------------------------------------
'ETAPE 1
'creation du dossier pour le projetUI qui va contenir le contenu du zip
'prevoir de le suprimer si il existe avec un code mac
'et creation du dossier
If Dir(folderUI, vbDirectory) = "" Then MkDir folderUI
'-----------------------------------------------------------
'ETAPE 2:
'Création du classeur
Set wbk = Workbooks.Add
'-----------------------------------------------------------
'ETAPE 3 :
'ajout du module pour les callback et inscription du code vba
Set vbcomp = wbk.VBProject.vbcomponents.Add(1)
vbcomp.Name = "Module_CallBack"
vbcomp.CodeModule.InsertLines 1, "'blablabla" & vbCrLf & "'trucmuche machin chose"
'-----------------------------------------------------------
'ETAPE 4:
'enregistrement du classeur en zip
'suppression des fichiers si ils existent
If Dir(cheminxlsm) <> "" Then Kill cheminxlsm
If Dir(cheminZip) <> "" Then Kill cheminZip
'sauve le classeur
Application.DisplayAlerts = False
Application.ScreenUpdating = False
wbk.SaveAs Filename:=cheminxlsm, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
wbk.Close
DoEvents
'-----------------------------------------------------------
'ETAPE 5:
'conversion en zip
Name cheminxlsm As cheminZip
'-----------------------------------------------------------
'ETAPE 6:
'extraction du contenu du zip dans un dossier temporaire folderUI
'code Mac
'-----------------------------------------------------------
'ETAPE 7:
'creation du dossier customUI dans le contenu extrait
MkDir folderUI & Application.PathSeparator & "customUI"
'-----------------------------------------------------------
'ETAPE 8:
'creation des deux ou un customui
'avec open for blablabla ou une fonction tout faite
'intégration dans le dossier customui
'-----------------------------------------------------------
'ETAPE 9:
'modififaction du rel.xml
'son chemin est forcement ' folderUI & application.pathseparator &"_rels" & application.pathseparator &".rels"
'-----------------------------------------------------------
'ETAPE 10
'réintégration du contenu dans le zip
'code Mac
'-----------------------------------------------------------
'ETAPE 11
'reconversion du zip en xlsm
Name cheminZip As cheminxlsm
End Sub
Hi Partrick,les étapes de la procedure de création du fichier avec ruban
VB:Sub create_Zip() 'chemin du projet Dim chemin As String, cheminZip As String, folderUI As String, wbk As Workbook, vbcomp As Variant cheminxlsm = ThisWorkbook.Path & Application.PathSeparator & "monprojet.xlsm" cheminZip = Replace(cheminxlsm, ".xlsm", ".zip") folderUI = ThisWorkbook.Path & Application.PathSeparator & "ProjetUI" '----------------------------------------------------------- 'ETAPE 1 'creation du dossier pour le projetUI qui va contenir le contenu du zip 'prevoir de le suprimer si il existe avec un code mac 'et creation du dossier If Dir(folderUI, vbDirectory) = "" Then MkDir folderUI '----------------------------------------------------------- 'ETAPE 2: 'Création du classeur Set wbk = Workbooks.Add '----------------------------------------------------------- 'ETAPE 3 : 'ajout du module pour les callback et inscription du code vba Set vbcomp = wbk.VBProject.vbcomponents.Add(1) vbcomp.Name = "Module_CallBack" vbcomp.CodeModule.InsertLines 1, "'blablabla" & vbCrLf & "'trucmuche machin chose" '----------------------------------------------------------- 'ETAPE 4: 'enregistrement du classeur en zip 'suppression des fichiers si ils existent If Dir(cheminxlsm) <> "" Then Kill cheminxlsm If Dir(cheminZip) <> "" Then Kill cheminZip 'sauve le classeur Application.DisplayAlerts = False Application.ScreenUpdating = False wbk.SaveAs Filename:=cheminxlsm, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False wbk.Close DoEvents '----------------------------------------------------------- 'ETAPE 5: 'conversion en zip Name cheminxlsm As cheminZip '----------------------------------------------------------- 'ETAPE 6: 'extraction du contenu du zip dans un dossier temporaire folderUI 'code Mac '----------------------------------------------------------- 'ETAPE 7: 'creation du dossier customUI dans le contenu extrait MkDir folderUI & Application.PathSeparator & "customUI" '----------------------------------------------------------- 'ETAPE 8: 'creation des deux ou un customui 'avec open for blablabla ou une fonction tout faite 'intégration dans le dossier customui '----------------------------------------------------------- 'ETAPE 9: 'modififaction du rel.xml 'son chemin est forcement ' folderUI & application.pathseparator &"_rels" & application.pathseparator &".rels" '----------------------------------------------------------- 'ETAPE 10 'réintégration du contenu dans le zip 'code Mac '----------------------------------------------------------- 'ETAPE 11 'reconversion du zip en xlsm Name cheminZip As cheminxlsm End Sub
Sub create_Folders()
Dim folderUI As String
folderUI = ThisWorkbook.Path & Application.PathSeparator & "ProjetUI"
MkDir folderUI
MkDir folderUI & Application.PathSeparator & "customUI"
'-----------------------------------------------------------
End Sub
' -----------------------------------------------------------------------------------------------------------------------------------------------------------
' Suppression du dossier folderUI ainsi que des fichiers se trouvant à l'interieur
' -----------------------------------------------------------------------------------------------------------------------------------------------------------
Sub testDeleteFolder()
Dim folderUI As String
folderUI = ThisWorkbook.Path & Application.PathSeparator & "ProjetUI" '& Application.PathSeparator
DeleteFolder folderUI
End Sub
Function DeleteFolder(FolderToDelete As String)
MacScript ("do shell script ""rm -R "" & quoted form of " & Chr(34) & FolderToDelete & Chr(34))
End Function
' -----------------------------------------------------------------------------------------------------------------------------------------------------------
' -----------------------------------------------------------------------------------------------------------------------------------------------------------
' UnZip du Fichier zip ProjetUI
' -----------------------------------------------------------------------------------------------------------------------------------------------------------
Sub testUnzip()
Dim folderUI As String, FicUnZip As String
folderUI = ThisWorkbook.Path & Application.PathSeparator & "ProjetUI" & Application.PathSeparator
FicUnZip = "ZipUnzip.zip" ' "monprojet.zip"
UnzipMacUI folderUI, FicUnZip
End Sub
Function UnzipMacUI(FolderToUnzip As String, FicUnZip As String)
MacScript ("do shell script ""cd "" & quoted form of " & Chr(34) & FolderToUnzip & """ & " & """; unzip ../" & """ & " & Chr(34) & FicUnZip & Chr(34))
End Function
' -----------------------------------------------------------------------------------------------------------------------------------------------------------
' -----------------------------------------------------------------------------------------------------------------------------------------------------------
' Zip des fichiers qui sont dans ProjetUI au nivau superieur
' -----------------------------------------------------------------------------------------------------------------------------------------------------------
Sub testZip()
Dim folderUI As String, FicZip As String
folderUI = ThisWorkbook.Path & Application.PathSeparator & "ProjetUI" & Application.PathSeparator
FicZip = "monprojetFinal.zip"
ZipMacUI folderUI, FicZip
End Sub
Function ZipMacUI(FolderToZip As String, FicZip As String)
MacScript ("do shell script ""cd "" & quoted form of " & Chr(34) & FolderToZip & """ & " & """; zip -rD ../" & """ & " & Chr(34) & FicZip & """ & """ & " . -x " & "\"".DS*\""" & Chr(34))
End Function
' -----------------------------------------------------------------------------------------------------------------------------------------------------------
Le xml tel qu'il apparait qd je l'ouvre sur mac avec VS codeok ryu
en l'etat la version 2024
contente toi de créer les elements ne cherche pas les attribut il n'y est pas encore la fonction je l'ai enlevé
et click sur savexml
juste pour voir si ça va jusqu'au bout
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" >
<ribbon startFromScratch="false" >
<tabs>
<tab id="tab000423">
<group id="gro000618">
<buttonGroup id="but000813">
<button id="but000910"/>
<button id="but001008"/>
</buttonGroup>
<button id="but001105"/>
<button id="but001203"/>
<button id="but001231"/>
</group>
</tab>
<tab id="tab000521">
<group id="gro000716">
<menu id="men010128">
<button id="but010325"/>
<button id="but010422"/>
</menu>
<button id="but010225"/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>