Sauvegarder un fichier csv via une macro

V

Vincent Marchetti

Guest
Bonjour.

Je rencontre actuellement un petit probleme sous Excel, qui malgres de nombreuses tentatives, n'a pu être résolu

Je souhaite sauvegarder à l'aide d'une macro un fichier au format .xls
en laissant à l'utilisateur la possibilité de choisir le nom du fichier. Pour cela j'ai écrit la ligne suivante :

Application.Dialogs(xlDialogSaveAs).Show

Jusqu'ici, tout va bien.

1ere question
La ou ca se complique, c'est qu'il me faut ensuite récupérer le nomdu fichier dans une variable. J'ai essayé d'utiliser la propriété Filename, sans succes. Quelqu'un saurait-il comment faire?

2eme question
Je doit ensuite sauvegarder une des feuilles de mon classeur au format .CSV dans le meme dossier que mon fichier xls et ayant le même nom.
pour cela j'utilise le code suivant :

Sheets('mafeuille').Select
ActiveWorkbook.SaveAs FileFormat:=xlCSV

Probleme : Excel renomme la feuille appelée ici 'mafeuille' en lui donnant le nom du fichier. Est-il possible d'éviter cela? Sinon puis-je récupérer le nom de mon fichier (cf question1) pour pouvoir ensuite renommer ma feuille comme je le veux?

Merci d'avance à ceux qui prendront le temps de me répondre.
 

Staple1600

XLDnaute Barbatruc
Un exemple:

SOURCE:Lien supprimé

Sub test()
Dim fich$
fich = 'c:\\testCSV.csv'
SaveAsCSV fich
'OpenCSV fich
End Sub

Sub SaveAsCSV(FileName$)
'steve, mpfe
'sauvegarde la feuille active en fichier texte délimité selon
'séparateur au choix (ici ';')

Dim Range As Object, Line As Object, Cell As Object
Dim StrTemp As String

Dim Separateur As String

Separateur = ';'

Set Range = ActiveSheet.UsedRange
Open FileName For Output As #1

For Each Line In Range.Rows
StrTemp = ''
For Each Cell In Line.Cells

StrTemp = StrTemp & CStr _
(Cell.Text) & Separateur

Next
Print #1, StrTemp
Next
Close
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 165
Messages
2 085 882
Membres
103 010
dernier inscrit
Sys974