Export d'une copie au format xlsx
Résolu
Bonjour à tous et toutes,
Voila je suis confronté à un léger problème.
Je remplis un fichier via un autre, juste là tout va bien. Sur ce fichier il y a une macro (format du fichier xlsm) . Ce dernier doit être transmis au format xlsx. J'aimerai donc enregistrer le fichier source sous un autre format (passer du xlsm au xlsx) sans fermer celui sur le lequel je travaille (pour en générer plusieurs).
Pour résumer simplement j'aimerai réaliser un export d'une copie du fichier au format xlsx le tout en lui donnant un nom moi même (comme dans enregistrer sous classique).
Pour le moment je me débrouille avec un bon vieux :
ActiveWorkbook.SaveCopyAs "C:\TEMP\XXXX.XLS
Sauf que :
-je ne suis pas toujours sur le même poste donc le chemin du desktop n'est pas le même partout
-le fichier a toujours le même nom je ne peux pas en générer plusieurs sans renommer le premier
Voila si quelqu'un a une idée de comment réaliser ceci sous vba
D'avance merci et bonne journée
Voila je suis confronté à un léger problème.
Je remplis un fichier via un autre, juste là tout va bien. Sur ce fichier il y a une macro (format du fichier xlsm) . Ce dernier doit être transmis au format xlsx. J'aimerai donc enregistrer le fichier source sous un autre format (passer du xlsm au xlsx) sans fermer celui sur le lequel je travaille (pour en générer plusieurs).
Pour résumer simplement j'aimerai réaliser un export d'une copie du fichier au format xlsx le tout en lui donnant un nom moi même (comme dans enregistrer sous classique).
Pour le moment je me débrouille avec un bon vieux :
ActiveWorkbook.SaveCopyAs "C:\TEMP\XXXX.XLS
Sauf que :
-je ne suis pas toujours sur le même poste donc le chemin du desktop n'est pas le même partout
-le fichier a toujours le même nom je ne peux pas en générer plusieurs sans renommer le premier
Voila si quelqu'un a une idée de comment réaliser ceci sous vba
D'avance merci et bonne journée
Configuration: Windows / Chrome 81.0.4044.129
3 réponses
-
ModérateurBonjour,
Pour ce qui est du chemin, pourquoi ne pas te baser sur le chemin du classeur actuelsFolderPath = ActiveWorkbook.Path
Et pour ce qui est du nom du fichier, un prompt ( inputbox) correspondrait à tes besoins
https://docs.microsoft.com/fr-fr/office/vba/api/excel.application.inputbox
. -
Contributeurbonjour, quand tu écris "tout en lui donnant un nom moi même", qui est "moi-même": le programme, ou l'utilisateur? souhaites-tu ouvrir une boite de dialogue permettant à l'utilisateur de choisir le nom de destination?
alors:Dim destfilename destfilename = Application.GetSaveAsFilename(ThisWorkbook.Path, "Excel xlsx Files,*.xlsx") If destfilename <> False Then ActiveWorkbook.SaveCopyAs destfilename Else ' "CANCELLED" End If-
-
-
Contributeur@daniel_1912en effet, SaveCopyAs ne change pas le type de fichier.
-
@yg_beAu final même il y a un petit couac je pense trouver une application a ceci merci encore
-
-
ContributeurBonjour,
comme ceci:
Dim destfilename destfilename = Application.GetSaveAsFilename(ThisWorkbook.Path, "Excel xlsx Files,*.xlsx") If destfilename <> False Then ActiveWorkbook.SaveAs Filename:= _ destfilename, FileFormat:= _ xlOpenXMLWorkbook, CreateBackup:=False Else ' "CANCELLED" End If