Macro enrigistrer fichier en xlsx avec pour nom = valeur d'une cellule


#1

Bonjour,
Suis sous office 365,
je souhaite créer un macro qui m’enregistre un fichier csv au format xlsx en prenant pour nom la valeur d’une cellule.
Auriez-vous un fichier exemple ???

Tout ce que j’ai trouvé sur internet ne fonctionne pas

Merci par avance


#2

Salut traderpierre,

Très rapidement, voici un vieux bout de machin que j’avais créé à l’époque.

EDIT: Version ICI

Il faudra que vous l’adaptiez sans doute un poil :wink:

Je peux vous expliquer ça plus longuement un peu plus tard.

A bientôt!


#3

Re,

Alors voici un fichier qui fait ce que vous souhaitez VotreNomDeFichier.xlsm (15,8 Ko)

Quelques précisions: Il ne faut bien sûr n’enregistrer qu’une copie de votre fichier source, sinon vous allez perdre les macros avec les formats différents de xlsm (fichier ci-dessus en conséquence)

Du coup, j’ai rajouté un module (voir ci-dessous) qui propose l’enregistrement au format csv (à adapter avec le format voulu) lors de la fermeture.
On pourrait le transformer en bouton ou raccourci.

Aller, je vous laisse avec le code :wink:

Le module:
Sub EnregistrementCSV()

Dim extension As String
Dim nomfichier As String
Dim chemin As String **'Fait doublon avec strPath**
Dim strPath As String

strFileName = Environ(“USERPROFILE”) & “\Desktop”

extension = “.csv” **'Ici l’extension que vous voulez**
nomfichier = Sheets(“Feuil1”).Range(“A1”).Value & extension **'Nom de fichier avec cellule A1. A Adapter**
chemin = strFileName **'Au choix, rentrez votre chemin de fichier “C:\Votre dossier” et supprimer strFileName ou conserver strFileName**

ActiveWorkbook.SaveCopyAs chemin & nomfichier **'Si on conserve strFileName alors remplacer chemin**

End Sub

Le petit code à coller dans "ThisWorkBook"
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Select Case MsgBox(“Enregistrer copie du fichier en .csv ?”, vbYesNo + vbQuestion, “Sauvegarde du fichier”)
Case vbYes
Call EnregistrementCSV
Case vbNo
Application.Quit
End Select
End Sub

EDIT: à la relecture de votre post, je pense qu’il serait plus simple de passer par vbs ou bat.
Sinon, il va falloir réimporter la macro à chaque fois (dans le sens csv to xlsx). Je dois avoir ça qui traine dans un coin.


#4

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.