Comment enregistrer sous un fichier en gardant son nom avec une macro

Bonjour à tous,

Tout d'abord, sachez que je n'ai jamais fait de VBA auparavant ...
Je viens vers vous pour savoir comment enregistrer sous avec une macro des fichiers dont je souhaite conserver les noms d'origine.

J'ai créer une macro qui fait les modifications que je souhaite et j'ai réussi à donner un chemin pour que ce fichier soit enregistrer dans un nouveau dossier tout en le convertissant de .xlsx à .xlsm mais je bloque pour qu'il garde le même nom.

Merci d'avance pour votre aide

  Dim nomFichier As String
  nomFichier = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 5) & ".xlsm"
  ThisWorkbook.SaveAs "chemin nouveau dossier" & nomFichier

Bonjour

Je ne suis pas sûr d'avoir bien compris mais à tout hasard :

Bonjour Yal_excel et merci pour ton aide,

En utilisant ton code, j'ai l'impression que le Thisworkbook.Name reprend le nom du fichier dans lequel la macro a été enregistré alors que j'ai besoin qu'elle reprenne le nom du fichier modifié.

Je ne comprend pas grand chose au VBA alors peut-être que je m'y prend mal, à la place de "chemin nouveau dossier", j'ai écris de cette façon :

"C:\Users\Saslen208\Desktop\nomdossier\nomsousdossier" & nomFichier

Merci

Si je comprends bien :

tu as créé un fichier qui ouvre un autre fichier, y apporte des modifications puis l'enregistre sous un nouveau nom?

fichier1 ouvre fichier2

fichier1 modifie fichier2

fichier1 enregistre fichier2 sous le nom fichier3

Avec le fichier exemple ce serait plus clair.

Bonjour Saslen208, yal_excel

Plutot que d'écrire un chemin du type : chemin="C:\Users\Saslen208" je préfère renvoyer le chemin de stockage des documents, images, ...downloads du user actif soit :

chemin= Environ("USERPROFILE")

pour récupérer le chemin d'un document ouvert pour enregistrer le fichier sous un autre nom utiliser : chemin = ThisWorkbook.Path

' pour enregistrer au format xlsm:

With ActiveWorkbook

.SaveAs Filename:=chemin & nomfichier, FileFormat:= xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

End With

Bon dimanche

Bonsoir Yal_excel et Scraper,

@Yal_excel, je m'y prend peut-être mal mais je procède comme suit:

1-j'ai ouvert un fichier que l'on va nommer fichier1 dans lequel j'ai enregistrer la macro qui met de l'ordre dans mes données en finissant par l'enregistrer sous un nouveau dossier. Je conserve le fichier1 source et j'enregistre sous le nouveau dossier en .xlsm sans en changer le nom.

2-Je garde le fichier1 modifié ouvert et j'ouvre ensuite un nouveau fichier que l'on va nommer fichier2, j'utilise le raccourci clavier pour exécuter la macro créée dans le fichier1 et je souhaite que le fichier2 modifié soit enregistré dans le nouveau dossier tout en gardant le nom qu'il portait avant les modifs et en conservant l'original. Je n'ai pas forcément besoin qu'il soit enregistré en .xlsm puisque j'utilise la macro faite dans le fichier1.

... dis moi si je m'y prend mal ?

@Scraper, merci pour ton aide mais je n'y comprend vraiment pas grand chose en VBA, je dois écrire de cette manière ton code ?

Dim nomFichier As String

nomFichier = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 5) & ".xlsm"

chemin = Environ("C:\Users\Saslen208")

With ActiveWorkbook

.SaveAs Filename:=chemin & nomfichier, FileFormat:= xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

End With

Merci à vous 2

Bonjour Saslen208

Envoie le fichier, on gagnera du temps.

Rechercher des sujets similaires à "comment enregistrer fichier gardant nom macro"