Autres Enregistrement d'un classeur issu d'un modèle contenant des macros

JLuc69nc

XLDnaute Nouveau
Bonjour le groupe,

Excel, quelque soit la version : fichier utilisé dans différents clubs

J'essaie de modifier un modèle de document Excel (*.xltm) et de faire un enregistrement sous après saisie de valeurs via un formulaire affiché sur le "Workbook.open"
Plus d'explications ainsi que des captures d'écran sont présentes dans le fichier PDF en pièce jointe.

Je suis ouvert à toute proposition pour pouvoir enregistrer en gardant les macros (je ne comprends pas pourquoi ça ne marche plus).

Merci à tous
 

Pièces jointes

  • Enregistrement Excel.pdf
    431.9 KB · Affichages: 1
Solution
Re bonjour
Regarde bien la syntaxe pour enregistrer en XLSM
ActiveWorkbook.SaveAs Filename:="C:\Users\Toto\Documents\Test.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Peut être faut il modifier ton code en se sens
Code:
NomFichier = etape & " " & disc & " " & cat & " " & clubAbrege & ".xlsm"
NomChoisi = Application.GetSaveAsFilename(NomFichier, fileFilter:="Excel Files (*.xlsm), *.xlsm")

If NomChoisi <> False Then
    ThisWorkbook.SaveAs Filename:=NomChoisi, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Else
    MsgBox "enregistrement annulé"
End If
Unload Me

Il faut ainsi que dans ta variable NomChoisi tu ais le chemin et le nom du fichier
A tester
@+ Lolote83

Lolote83

XLDnaute Barbatruc
Bonjour,
Comme tu dis :
Je suis ouvert à toute proposition pour pouvoir enregistrer en gardant les macros
Si effectivement tu souhaites enregistrer ton classeur en gardant les macros, il faut choisir XLSM et non XLSX
Un fichier XLSX est un fichier sans macro

un exemple de code pour enregistrer en conservant les macros (chemin et nom de fichier à adapter)
VB:
Sub EnregistrerSousXLSM()
    ActiveWorkbook.SaveAs Filename:="C:\Users\Toto\Documents\Test.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub

@+ Lolote83
 

JLuc69nc

XLDnaute Nouveau
En conservant le code d'origine, j'ai modifié comme ceci :
VB:
NomFichier = etape & " " & disc & " " & cat & " " & clubAbrege & ".xlsm"
NomChoisi = Application.GetSaveAsFilename(NomFichier, fileFilter:="Excel Files (*.xlsm), *.xlsm")

If NomChoisi <> False Then
    ThisWorkbook.SaveAs (NomChoisi)
Else
    MsgBox "enregistrement annulé"
End If
Unload Me

A l'enregistrement, j'ai :
1697706195450.png


Et à la sortie, j'obtiens :
1697706069933.png


J'avoue que je ne comprends pas tout :/
 

Lolote83

XLDnaute Barbatruc
Re bonjour
Regarde bien la syntaxe pour enregistrer en XLSM
ActiveWorkbook.SaveAs Filename:="C:\Users\Toto\Documents\Test.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Peut être faut il modifier ton code en se sens
Code:
NomFichier = etape & " " & disc & " " & cat & " " & clubAbrege & ".xlsm"
NomChoisi = Application.GetSaveAsFilename(NomFichier, fileFilter:="Excel Files (*.xlsm), *.xlsm")

If NomChoisi <> False Then
    ThisWorkbook.SaveAs Filename:=NomChoisi, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Else
    MsgBox "enregistrement annulé"
End If
Unload Me

Il faut ainsi que dans ta variable NomChoisi tu ais le chemin et le nom du fichier
A tester
@+ Lolote83
 

Statistiques des forums

Discussions
312 206
Messages
2 086 223
Membres
103 159
dernier inscrit
FBallea