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

Excel 97 et activeworkbook.saveas

2 réponses
Avatar
kalou
Je programme en VBA sur XL97, lorsque j'utilise la=20
commande ActiveWorkbook.SaveAs avec fileformat:=3DxlCSV, le=20
fichier texte obtenu n'a pas comme s=E9parateur de liste le=20
point-virgule ??? Alors que lorsque je r=E9alise cette=20
op=E9ration avec enregistrer-sous dans XL cela fonctionne,=20
le s=E9parateur est bien un ;???

2 réponses

Avatar
Céline CHARBONNIER
Bonjour,

Ce comportement est normal, étant donné que le moteur VBA utilise par défaut
des paramètres régionaux en US qui utilise une virgule comme séparateur.
Pour ma part, je ne connais pas de moyen simple pour réaliser celà sur 97,
pour 2000 et 2002 par contre ça ne pose pas de problème..


Céline CHARBONNIER
Sitel pour l'assistance utilisateur Microsoft

"kalou" a écrit dans le message de
news: 23d901c3e0bf$bc3a0440$
Je programme en VBA sur XL97, lorsque j'utilise la
commande ActiveWorkbook.SaveAs avec fileformat:=xlCSV, le
fichier texte obtenu n'a pas comme séparateur de liste le
point-virgule ??? Alors que lorsque je réalise cette
opération avec enregistrer-sous dans XL cela fonctionne,
le séparateur est bien un ;???
Avatar
Clément Marcotte
Bonjour,

Puisque que le format CSV n'est rien d'autre qu'un fichier texte:

Juste à pas passer par enregistrer sous.

La procédure suivante utilise trois façons différentes d'écrire un
fichier texte
avec VB-VBA:


Sub ecrirelefichiertexteavecdesvirgules()
Open "unbeaufichiertexte.txt" For Output As 1
Dim i As Integer, derniereligne As Integer
Sheets("Feuil1").Select
derniereligne = [a65536].End(xlUp).Row
'Avec Write
For i = 1 To derniereligne
Write #1, Cells(i, 1).Value; Cells(i, 2).Value; _
Cells(i, 3).Value; Cells(i, 4).Value
Next
'Avec Print et virgules
'Le séparateur dans le fichier est entre guillemets
'le séparateur VBA n'est pas entre guillemets
For i = 1 To derniereligne
Print #1, Chr(34); Cells(i, 1).Value; Chr(34); _
","; Chr(34); Cells(i, 2).Value; Chr(34); _
","; Cells(i, 3).Value; ","; Chr(34); _
Cells(i, 4).Value; Chr(34)
Next
'Le séparateur dans le fichier est entre guillemets
'le séparateur VBA n'est pas entre guillemets
'sauf pour les points-virgules qui collent les
'nom et les guillemets
For i = 1 To derniereligne
Print #1, Chr(34); Cells(i, 1).Value; Chr(34), ",", _
Chr(34); Cells(i, 2).Value; Chr(34); , _
",", Cells(i, 3).Value, ",", Chr(34); _
Cells(i, 4).Value; Chr(34)
Next
Close
End Sub


"kalou" a écrit dans le message
de news:23d901c3e0bf$bc3a0440$
Je programme en VBA sur XL97, lorsque j'utilise la
commande ActiveWorkbook.SaveAs avec fileformat:=xlCSV, le
fichier texte obtenu n'a pas comme séparateur de liste le
point-virgule ??? Alors que lorsque je réalise cette
opération avec enregistrer-sous dans XL cela fonctionne,
le séparateur est bien un ;???