Retour chariot VBA

Fermé
Antoine - 29 juil. 2010 à 15:14
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 29 juil. 2010 à 16:26
Bonjour,

VBA est en train de me faire perdre mes cheveux:

Je veux simplement importer des csv dans excel 2003 avec une macro.
Mes champs du csv sont séparés par "," et "carré" pour le retour chariot.

Ouvrir le csv dans Excel avec un double clic: pas de problème
Lire le csv dans une macro: le "carré" du retour chariot n'est pas reconnu et décale tous les champs...

En dehors de ce problème, ma macro qui tourne.

Merci d'avance pour votre aide!!


5 réponses

Ah oui, le code...
Désolé, suis novice du forum.

Mon code est ci dessous.
Je veux importer mon csv dans un tableau 'Result'.
La boucle tourne, mon seul problème est que les carrés du csv sont reconnus comme caractères et non comme retour chariot...

Bonnes vacances Bidouilleu, et merci d'avance à celui qui voudra bien m'aider!



Redim Result (1 to 3, 1 to 1)

Open "filename.csv" For Input As #1

i = 1

Do While Not EOF(1) ' Effectue la boucle jusqu'à la fin du fichier.
Input #1, Champ1, Champ2, Champ3 ' Lit la ligne dans les variables.

Result (1, i) = Champ1
Result (2, i) = Champ2
Result (3, i) = Champ3

i = i + 1

ReDim Preserve Result(1 To 3, 1 To i)

Loop
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
29 juil. 2010 à 16:17
Bonjour,
Je pense qu'il y a plus simple que ça,
Active une feuille qui n'est pas employée, select A1 et essaye avec..
Workbooks.Open Filename:=Chemin & Fichier

Normalement le fichier CSV est ouvert en entier sur la feuille
A+
0
oui, j'ai essayé et ça marche, seulement je vais avoir beaucoup de csv à importer, donc je préfère qu'il les ouvre en "aveugle".
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 29/07/2010 à 16:28
Je ne vois pas où serait le problème, tu n'a que de faire la même chose qu'avec tes input, sauf que tu travail avec les lignes de la feuille et ensuite vider la feuille.
Sais pas si j'ai été bien clair.
au cas ou, un exemple pour mémoriser des csv en série.
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 293
29 juil. 2010 à 15:53
Bonjour,

VBA est en train de me faire perdre mes cheveux:
Donc tu as encore des cheveux ;-)

pour ton problème du fait que tu n'as pas mis ton code
c'est dur de te donner une réponse.
Sauf que le Reour Chariot Est traité directement dans un textsteam
ou avec la méthode maligne= input (ligne,#1)
donc voilà une autre façon de faire

https://www.commentcamarche.net/faq/16109-excel-convertir-fichier-s-csv-xls

pourquoi réincenter ce qui marche bien

bon je suis en vacances alors bonnes vacances.
-1