[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 Sub

Je 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 Sub

Aide 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 Sub

En 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

Rechercher des sujets similaires à "vba sauvegarder format xlsm"