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

Ouvrir un fichier csv

2 réponses
Avatar
olivier.duclos2
Bonjour à tous

J'aurais besoin d'un petit coup de pouce. Je travaille sous Windows Xp
avec Office XP.

Le fichier toto.csv est une extraction d'une base de donnée.
Quand j'ouvre un fichier toto.csv à partir d'excel ou de l'explorateur
de bureau j'arrive à avoir les données de chaque champ dans une colonne.
J'aimerai faire la même chose par macro.

Par contre quand j'ouvre ce fichier à partir d'une macro Excel, j'ai
dans Excel une ligne correspond à l'ensemble des données mais séparées par
des point virgule.
J'ouvre le fichier par la commande workbooks.open filename:= toto.csv
Y a t'il une possibilité d'ouvrir ce fichier comme dans le premier (les
données de chaque champs sont d'office mis dans une colonne d'Excel) ?
Ps : la solution par convertir ne fonctionne pas dans mon cas car elle ne
fonctionne que sur la première ligne de mon fichier toto.csv et si je fais
sur les autres lignes les données ne sont pas toujours dans les bons champs.

Merci pour votre aide.

2 réponses

Avatar
Daniel.C
Bonjour.
Poste ta macro.
Daniel
"olivier.duclos2" a écrit dans le message de
news: 48c26f70$0$957$
Bonjour à tous

J'aurais besoin d'un petit coup de pouce. Je travaille sous Windows Xp
avec Office XP.

Le fichier toto.csv est une extraction d'une base de donnée.
Quand j'ouvre un fichier toto.csv à partir d'excel ou de l'explorateur
de bureau j'arrive à avoir les données de chaque champ dans une colonne.
J'aimerai faire la même chose par macro.

Par contre quand j'ouvre ce fichier à partir d'une macro Excel, j'ai
dans Excel une ligne correspond à l'ensemble des données mais séparées
par des point virgule.
J'ouvre le fichier par la commande workbooks.open filename:= toto.csv
Y a t'il une possibilité d'ouvrir ce fichier comme dans le premier (les
données de chaque champs sont d'office mis dans une colonne d'Excel) ?
Ps : la solution par convertir ne fonctionne pas dans mon cas car elle ne
fonctionne que sur la première ligne de mon fichier toto.csv et si je fais
sur les autres lignes les données ne sont pas toujours dans les bons
champs.

Merci pour votre aide.




Avatar
michdenis
Si tu as une version Excel 2002 ou plus récent, utilise ceci :

Workbooks.open FileName:="C:Exceltoto.xls", Local:=True

Sinon, ce qu'il faut comprendre, c'est que dans l'inferface VBA,
"tout" est américain et ainsi le séparateur américain utilisé dans
les fichiers .csv est la virgule et non le point-virgule ....c'est ce
pourquoi tu obtiens ton résultat.

Quand tu ouvres le fichier via l'inferface de calcul, excel tient compte
de tes paramètres régionnaux de ton panneau de configuration et
ce ce fait si le séparateur est le point-virgule. Tu n'éprouves aucun
problème à obtenir le résultat désiré.

Alors, il est possible de créer une macro qui fasse le travail ....

'------------------------------
Sub Exemple()
Dim Fichier As String
Fichier = "c:test.csv" ' à adapter
OuvrirFichier Fichier
End Sub
'------------------------------
Sub OuvrirFichier(NomFichier As String)
Dim Wk As Workbook
Set Wk = Workbooks.Open(NomFichier)
'tu adaptes Nom de la feujille et de la colonne
'ou seront insérées tes données
Wk.Sheets(1).Columns(1).TextToColumns _
Range("A1"), , , False, , True, , _
DecimalSeparator:="."
Set Wk = Nothing
End Sub
'------------------------------


"olivier.duclos2" a écrit dans le message de
news: 48c26f70$0$957$
Bonjour à tous

J'aurais besoin d'un petit coup de pouce. Je travaille sous Windows Xp
avec Office XP.

Le fichier toto.csv est une extraction d'une base de donnée.
Quand j'ouvre un fichier toto.csv à partir d'excel ou de l'explorateur
de bureau j'arrive à avoir les données de chaque champ dans une colonne.
J'aimerai faire la même chose par macro.

Par contre quand j'ouvre ce fichier à partir d'une macro Excel, j'ai
dans Excel une ligne correspond à l'ensemble des données mais séparées par
des point virgule.
J'ouvre le fichier par la commande workbooks.open filename:= toto.csv
Y a t'il une possibilité d'ouvrir ce fichier comme dans le premier (les
données de chaque champs sont d'office mis dans une colonne d'Excel) ?
Ps : la solution par convertir ne fonctionne pas dans mon cas car elle ne
fonctionne que sur la première ligne de mon fichier toto.csv et si je fais
sur les autres lignes les données ne sont pas toujours dans les bons champs.

Merci pour votre aide.