Ouvrir un fichier csv

Le
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.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #16734621
Bonjour.
Poste ta macro.
Daniel
"olivier.duclos2" 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.




michdenis
Le #16734781
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" 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.
Publicité
Poster une réponse
Anonyme