[VBA] Sauvegarder au format .xlsm

Dolichotis

XLDnaute Occasionnel
Bonjour,

Décidement, j'ai du mal à me faire à Excel 2007 !
J'ai fait une macro où je fais une copie d'une feuille du classeur dans un nouveau classeur.

Pour la première partie de la question : j'arrive à le sauvegarder (en VBA) au format .xlsx mais quand j'essaye de l'enregistrer au format .xlsm, la macro bugge. Comment faire ?

Voici mon code :
Code:
ActiveWorkbook.SaveAs Filename:="" & chem & "\Chant\" & Proj & "\" & Proj & ".xlsx" 'sauvegarder
    
    ActiveWorkbook.SaveCopyAs "" & chem & "\Chant\" & Proj & "\" & Proj & ".xlsm" 'sauvegarder
    Workbooks.Open Filename:="" & chem & "\Chant\" & Proj & "\" & Proj & ".xlsm" 'ouvrir

Deuxième partie de la question, une fois ce nouveau classeur .xlsm créé, est-ce que les macros seront accessibles dessus ? Et les userforms ?

Troisième partie de la question, sur le classeur initial contenant la macro, j'ai créé un ruban personnalisé, est-ce que ce ruban sera sur le nouveau classeur ?

Dernière partie, j'ai essayé d'ajouter des onglets et boutons dans le ruban personnalisé, en prenant le modèle initial (en XML) mais ça ne marche pas.
Code:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="false">
<tabs>

<tab id = "Perso" label="MenuOpt" insertAfterMso="TabAddIns">

<group id="Chant" label="Chant">

<button id="Chant1" label="Créer un chant" onAction="Macro1" size="medium" imageMso="ReviewEditComment" />

<button id="Chant2" label="Ouvrir un chant" onAction="Macro2" size="large" imageMso="ChangeStyleMenu" />

<group id="Art" label="Art">

<button id="Art1" label="Fiche ArtA" onAction="Macro3" size="medium" imageMso="SortFilterMenu" />

<button id="Art2" label="Fiche ArtE" onAction="Macro4" size="large" imageMso="ReviewEditComment" />

<group id="Dess" label="Dess">

<button id="Dess1" label="Mettre un dess" onAction="Macro5" size="medium" imageMso="ChangeStyleMenu" />


</group>
</tab>
</tabs>
</ribbon>
</customUI>

Merci d'avance à ceux qui pourront m'éclairer sur ces questions, ça me permettrait de faire un grand pas en avant !

Bon week-end à tous !
 

kiki29

XLDnaute Barbatruc
Re : [VBA] Sauvegarder au format .xlsm

Salut, En utilsant le macro recorder

ActiveWorkbook.SaveAs Filename:="C:\...\Classeur1.xlsm", FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, ....

C'est le principe même des fichiers xlsm qui préserve
les macros et le reste dans le classeur concerné

pour la suite voir La personnalisation du ruban sous Excel 2007 - Club d'entraide des développeurs francophones
http://silkyroad.developpez.com/excel/callbacks/ et https://openxmldeveloper.org/articles/customuieditor.aspx
 
Dernière édition:

Dolichotis

XLDnaute Occasionnel
Re : [VBA] Sauvegarder au format .xlsm

Bonjour Kiki et merci pour ta réponse !
J'ai rajouté le FileFormat et l'enregistrement en.xlsm marche parfaitement.
Merci !
Je vais voir pour le reste.

Je sais comment faire un bouton dans un ruban mais quand j'en mets plusieurs, ça ne marche pas. J'ai peut-être trop modifié le code. Je vais regarder de plus près, à quoi correspond la propriété id dans tab, group et button, dans les liens que tu m'as mis.

Encore merci !
 

C@thy

XLDnaute Barbatruc
Re : [VBA] Sauvegarder au format .xlsm

Bonjour le forum, le fil

J'ai un fichier qui comporte en col A le nom des fichiers en col B le chemin en col C le nouveau nom avec le chemin mais sans le disque (qui peut changer d'un poste à l'autre car le disque réseau n'a pas toujours la meme lettre)
Ex A : Toto.XLs
B: C:/excel/
C: /excel2010/nouveau Toto
Ce fichier est sur le réseau.
Si le disque réseau est Z il faudra enregistre sous Z:/excel2010/nouveau Toto.xlsm
(Pour obtenir la lettre du disque réseau on fait un curdir je pense)

Ma question est la suivante :
est-il possible de tester si le fichier ne comporte pas de macros enregistrer en xlsx sinon xlsm

Je pense qu'il faudrait:
créer un tableau des fichiers à ouvrir
Ouvrir 1 par 1 les fichiers
Tester si macros
Enregistrer sous disque reseau/nouveau répertoire/nouveau nom. xlsx ou xlsm si macros.

Pouvez-vous m'aider au moins en partie? Y a-t-il ensuite des problèmes ou le fichier converti en 2010 est-il exploitable avec les macros récupérées?

Un grand merci a vous

Biz et bonne journée

C@thy
 

Discussions similaires

Réponses
4
Affichages
825

Statistiques des forums

Discussions
312 216
Messages
2 086 351
Membres
103 195
dernier inscrit
martel.jg