enregistrement en xlsm

bepo08

XLDnaute Nouveau
Salut,
Un petit problème pour faire un enregistrement automatique de fichier au format "xlsm"

J'ai un fichier source qui est par exemple - lulu.xlmt
A la fin de l'exécution d'une macro je voudrais pouvoir enregistrer le fichier avec un nouveau nom au format "xlsm"

Voici l'un des codes que j'ai essayer, mais le résultat n'est pas satisfaisant
Sub Enregistrement()

'On demande l'enregistrement du fichier
Dim BoiteEnregistrerSous As Dialog
Set BoiteEnregisterSous = Application.Dialogs(xlDialogSaveAs)
BoiteEnregisterSous.Show

' Nom = InputBox("Donner le nom de votre fichier")

ActiveWorkbook.SaveAs Filename:= _
"Nom.xlsm ", FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

'Filefilter:="Classeur Excel(*.xlsm),*.xlsm")
'ActiveWorkbook.SaveAs FileFormat:="xlsm"


'FileFormat :=xlOpenXMLWorkbookMacroEnabled,".xlsm"

End Sub

Si quelqu'un peut me donner un coup de main
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Bepo, bonjour le forum,

Tu y étais presque sauf qu'il fallait utiliser la variable Nom et pas le texte "Nom". Ton code un peu modifié :

VB:
Sub Enregistrement()
Dim Nom As Variant 'déclare la variable Nom
ici: 'étiquette
Nom = Application.InputBox("Donner le nom de votre fichier", "ENREGISTRER SOUS", Type:=2) 'définit la boîte d'entrée Nom
If Nom = False Then Exit Sub 'si bouton [Annuler], sort de la procédure
If Nom = "" Then GoTo ici 'si non renseigné, va à l'étiquette "ici"
'enregistre le classeur sous : dans le même dossier que la source avec extension xlsm
ActiveWorkbook.SaveAs Filename:=Nom, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub
 

bepo08

XLDnaute Nouveau
Bonjour,
C'est presque ca
Mais :
Quand j'ai ouvert mon fichier modèle je l'ai éventuellement déjà enregistrer sous un nom
Je voudrais éviter d'avoir à redonner le nom dans une InputBox a chaque fois que j'utilise ma macro, car cela peut se faire plusieurs fois
d'ou l'intérêt de ma Boite d'enregistrement qui me permet déjà de ré-afficher le nom.
Mon principal problème est l'extension xlsm

Autre question :
A quoi sert le : CreateBackup:=False
 

Staple1600

XLDnaute Barbatruc
Bonsoir à tous

Une possible macro en reprenant la boite de dialogue utilisée dans le premier message.
VB:
Sub Sauvegarde()
Dim bCancel As Boolean, nom$, chemin$, tmp$
 '-< Remplacer la valeur de chemin
chemin = "C:\Users\Staple1600\Documents\2019\"
'par un chemin qui existe sur votre PC
tmp = "Copie_" & Format(Now, "yyyymmdd_hhmmss")
nom = InputBox("Donner le nom de votre fichier", "Choix du nom", tmp)
    Do Until bCancel = True
        bCancel = Application.Dialogs(xlDialogSaveAs).Show(chemin & nom & ".xlsm", 52)
        If bCancel = False Then MsgBox "Sauvegarde obligatoire!", vbCritical, "Vous n'avez pas le choix...ou presque"
    Loop
End Sub
 

Discussions similaires

Réponses
5
Affichages
290
Réponses
14
Affichages
379
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 196
Messages
2 086 084
Membres
103 116
dernier inscrit
kutobi87