Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Enregistrer sous.. CSV (VBA)

1 réponse
Avatar
DCR
Bonjour,

J'ai enregistrer une macro automatique en faisant fichier - enregistrer sous
- format csv (point virgule).

manuellement cela fonctionne bien

lorsque j'appelle ma macro, elle le séparateur présent dans le fichier est
la virgule...

(excel XP)

Comment faire pour sauvegarder mon fichier en texte séparateur point virgule ?

merci de votre aide

1 réponse

Avatar
michdenis
Bonjour DCR,

Si tu as excel 2002 ou 2003, regarde dans l'aide la méthode SaveAs :

expression.SaveAs(FileName, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AccessMode,
ConflictResolution, AddToMru, TextCodepage, TextVisualLayout, Local)

Tu dois utiliser ceci :

Thisworkbook.saveas FileName:="c:Mes fichiersMonClasseur.xls",Local:=True
Le paramêtre Local permet de conserver les paramêtre régionnaux du panneau de configuration

Si ta version est plus ancienne, il est possible de s'en sortir en créant le fichier .csv par un petit code.

Tu copies ceci dans un module standard et tu adaptes quelques paramêtres dans les procédures.

'-----------------------------------
Sub EnregistrerFormatSpecial()

Dim Plage As Range, Séparateur As String
Dim NomFichierSauvegarde As String
Dim R As Long, C As Integer

With ThisWorkbook.Worksheets("Feuil2") ' à déterminer
R = .Cells.Find("*", , xlFormulas, , xlByRows, xlPrevious).Row
C = .Cells.Find("*", , xlFormulas, , xlByColumns, xlPrevious).Column
Set Plage = .Range(.Range("A1"), Cells(R, C))
End With

Séparateur = ";" ' séparateur de ton choix
NomFichierSauvegarde = "C:Denis.csv" 'chemin et fichier à déterminer

SaveAsCSV Plage, Séparateur, NomFichierSauvegarde

End Sub
'-----------------------------------
Sub SaveAsCSV(Plage As Range, Séparateur As String, _
NomFichierSauvegarde As String)

Dim Temp As String, R As Range, C As Range

Open NomFichierSauvegarde For Output As #1
For Each R In Plage.Rows
Temp = ""
For Each C In R.Cells
Temp = Temp & C & Séparateur
Next
Temp = Left(Temp, Len(Temp) - 3)
Print #1, Temp
Next
Close
Set Plage = Nothing: Set C = Nothing: Set R = Nothing
End Sub
'-----------------------------------


Salutations!




"DCR" a écrit dans le message de news:
Bonjour,

J'ai enregistrer une macro automatique en faisant fichier - enregistrer sous
- format csv (point virgule).

manuellement cela fonctionne bien

lorsque j'appelle ma macro, elle le séparateur présent dans le fichier est
la virgule...

(excel XP)

Comment faire pour sauvegarder mon fichier en texte séparateur point virgule ?

merci de votre aide