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
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
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.