[VBA] sauvegarder en format .xlsm
Bonjour tout le monde
Je n'arrive pas a enregistrer mon fichier de telle sorte à ce que extension soit ".xlsm" (prenant en charge le macro)
Voici mon code :
Sub sauvegarder()
Dim extension As String
Dim chemin As String,
Dim nomfichier As String
extension = ".xlsx"
chemin = "C:\Users\Greg\Documents\"
nomfichier = ActiveSheet.Range("A6") & extension
With ActiveWorkbook
.SaveAs Filename:=chemin & nomfichier
End With
End SubJe pensais qu'il suffisait de mettre .xlsm pour que celui ci l'enregistre sous forme de fichier excel macro mais ce n'est pas le cas :s
Pourriez vous m'aider s'il vous plait ? Je vous en serai très reconnaissant
Merci d'avance !
EDIT : Ceci fut la réponse à ma première question. Ma demande se trouve en fin de topic merci
Après plusieurs recherches j'ai trouvé (via l'aide de quelqu'un aussi ^^ ) !
Le bon code est le suivant :
Sub sauvegarder()
Dim extension As String
Dim chemin As String
Dim nomfichier As String
extension = ".xlsm"
chemin = "C:\Users\Greg\Documents\"
nomfichier = ActiveSheet.Range("A6") & extension
With ActiveWorkbook
.SaveAs Filename:=chemin & nomfichier, FileFormat:= xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End With
End SubAide pour les prochains :
=> Ce code vous permettra d'enregistrer un fichier compatible macro.
=> Le code enregistrera le fichier selon le nom donné en cellule A6
=> Vous pouvez choisir le chemin.
Bonne journée à tout le monde
Bonjour essai avec :
With ActiveWorkbook
.SaveAs Filename:=chemin & ActiveSheet.Range("A6"), FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Je remonte le topic car je souhaiterai améliorer la formule suivante :
Sub sauvegarder()
Dim extension As String
Dim chemin As String
Dim nomfichier As String
extension = ".xlsm"
chemin = "C:\Users\Greg\Documents\"
nomfichier = ActiveSheet.Range("A6") & extension
With ActiveWorkbook
.SaveAs Filename:=chemin & nomfichier, FileFormat:= xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End With
End SubEn effet, celle-ci enregistre le fichier Excel sous le nom cité en "A6" vers le chemin désiré. Néanmoins elle renomme le fichier surlequel je travaille ( En d'autre mot je continue à travailler sur le fichier que je viens d'enregistrer avec la macro)... :/
Je souhaiterai tout simplement que le fichier soit archivé vers le chemin cité au nom demandé mais qu'il me laisse travailler sur le classeur actuel. De plus, cette formule enregistre TOUT le fichier alors que je n'ai besoin que de l'onglet. J'ai tenté de remplacer With ActiveWorkbook avec With ActiveSheet ou With Thisworkbook mais ça ne change rien... :/
Quelqu'un peut m'aider s'il vous plait ?
J'ai trouvé par moi même (une nouvelle fois ! Je commence à m'épater...^^")
Voici la code :
Sub sauvegarder()
Dim Chemin As String, NomFichier As String
Dim extension As String
Application.ScreenUpdating = False
Chemin = "C:\Users\ "
'Chemin = ThisWorkbook.Path & "\" & Range("C1") & "\" ' Mon chemin (A supprimer)
extension = ".xlsm"
On Error Resume Next
MkDir Chemin
On Error GoTo 0
NomFichier = ActiveSheet.Range("A4") & extension
Sheets(Range("C1").Value).Copy
With ActiveWorkbook
.SaveAs Filename:=Chemin & NomFichier, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
.Close
End With
End Sub=> La celulle A4 nommera votre fichier
=> La celulle C1 enregistrera l'onglet en question (veillez a respecter les majuscules et les minulscules /!\
=> Dans le code : pensez à adapter votre chemin
Bonne soirée à vous, en espérant que cela puisse servir aux suivants