Bonjour à tous,
C'est mon 1er post sur ce forum et j'espère ne pas vous rabâcher les oreilles avec ce sempiternel problème.
Je souhaite que ma macro copie la feuil1 d'un classeur dans un second, l'enregistre en CSV avec comme séparateur le ";" et le referme.
Je souhaite de plus que le nouveau classeur s'affiche à l'identique de la feuille source (présentation en ligne et colonne).
Voici mon code, excusez son archaïsme (j'utilise bcp trop l'enregistreur de macro...) :
Sheets("feuil1").Select
Cells.Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:=SAVEconfig, FileFormat:=xlCSV, _
CreateBackup:=False
ActiveWorkbook.save
ActiveWorkbook.Close
Le résultat c'est ça :
En l'ouvrant avec le bloc-note c'est identique.
Or je veux ça :
Après consultation l'aide Excel 2007 (idem 2010), il semblerait que le séparateur avec FileFormat:=xlCSV soit bien la ",".
Or j'ai absolument besoin du séparateur ";" et "accessoirement" de l'affichage à l'identique de la feuil1.
Il y aurait-il un paramètre supplémentaire à renseigner dans la commande "SaveAs" pour changer la "," en ";" ?
De plus j'ai remarqué en tâtonnant la chose suivante :
Si je supprime la commande "ActiveWorkbook.Close" dans mon code, le nouveau classeur resté ouvert présente la même mise en forme que la feuil1.
Lorsque je le ferme, apparaît la classique boîte de dialogue de sauvegarde puis une autre concernant la conservation de la mise en forme du fichier et l'utilisation comme séparateur du point-virgule (de mémoire...)
Je réponds oui à chaque fois et j'obtiens un fichier CSV, reproduisant fidèlement l'affichage de la feuil1, avec comme séparateur le ";" (vérifié en l'ouvrant avec le bloc-note).
Sauf que je veux que cela soit la macro qui referme le fichier... et je ne peux que constater mon impuissance...
Any ideas Fellows?
PS : toute démonstration de simplification de ce piètre code sera notée avec intérêt...
C'est mon 1er post sur ce forum et j'espère ne pas vous rabâcher les oreilles avec ce sempiternel problème.
Je souhaite que ma macro copie la feuil1 d'un classeur dans un second, l'enregistre en CSV avec comme séparateur le ";" et le referme.
Je souhaite de plus que le nouveau classeur s'affiche à l'identique de la feuille source (présentation en ligne et colonne).
Voici mon code, excusez son archaïsme (j'utilise bcp trop l'enregistreur de macro...) :
Sheets("feuil1").Select
Cells.Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:=SAVEconfig, FileFormat:=xlCSV, _
CreateBackup:=False
ActiveWorkbook.save
ActiveWorkbook.Close
Le résultat c'est ça :
En l'ouvrant avec le bloc-note c'est identique.
Or je veux ça :
Après consultation l'aide Excel 2007 (idem 2010), il semblerait que le séparateur avec FileFormat:=xlCSV soit bien la ",".
Or j'ai absolument besoin du séparateur ";" et "accessoirement" de l'affichage à l'identique de la feuil1.
Il y aurait-il un paramètre supplémentaire à renseigner dans la commande "SaveAs" pour changer la "," en ";" ?
De plus j'ai remarqué en tâtonnant la chose suivante :
Si je supprime la commande "ActiveWorkbook.Close" dans mon code, le nouveau classeur resté ouvert présente la même mise en forme que la feuil1.
Lorsque je le ferme, apparaît la classique boîte de dialogue de sauvegarde puis une autre concernant la conservation de la mise en forme du fichier et l'utilisation comme séparateur du point-virgule (de mémoire...)
Je réponds oui à chaque fois et j'obtiens un fichier CSV, reproduisant fidèlement l'affichage de la feuil1, avec comme séparateur le ";" (vérifié en l'ouvrant avec le bloc-note).
Sauf que je veux que cela soit la macro qui referme le fichier... et je ne peux que constater mon impuissance...
Any ideas Fellows?
PS : toute démonstration de simplification de ce piètre code sera notée avec intérêt...