Extraire contenu d'un fichier texte vers Excel

VBax Messages postés 3 Date d'inscription jeudi 17 juillet 2008 Statut Membre Dernière intervention 18 juillet 2008 - 17 juil. 2008 à 11:20
VBax Messages postés 3 Date d'inscription jeudi 17 juillet 2008 Statut Membre Dernière intervention 18 juillet 2008 - 18 juil. 2008 à 17:38
Bonjour à tous,

Je débute en VBA (du moins je pense..) . J'ai besoin d'aide pour extraire les lignes d'un fichier texte pour ensuite les coller dans un fichier excel. Il faudrait que puisse automatiser le système car j'ai beaucoup de fichier texte!!

Mes fichiers textes ont tous cette forme là :

19991118 42.87 47.11 37.69 41.46 47483544
19991119 40.46 40.52 37.51 38.05 11565357
19991122 38.92 41.46 37.75 41.46 4993743
19991123 40.04 41.11 37.69 37.69 4536525
...etc...etc...

J'aimerais que chaque ligne du fichier texte se retrouve en ligne dans le fichier excel. Ensuite, je pense spliter les données par le séparateur "espace"..

J'ai essayer quelques code du type:

<li>PublicFunction OuvrirTextRapide(ByVal Fichier AsString) AsString</li><li>Dim a AsInteger</li><li> a = FreeFile
</li><li>
</li><li>Open Fichier For Input As #a
</li><li> OuvrirTextRapide = Input(LOF(a), a)
</li><li>Close #a
</li><li>EndFunction</li><li>
</li><li>OuvrirTextRapide("C:\Fichier.txt")</li>
alors la macro copie bien une partie du fichier mais la forme obtenue est inexploitable!! même pour la conversion des données.

Si une bonne âme peut m'aider, ce serait vraiment sympa!!!

VBax

4 réponses

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
17 juil. 2008 à 12:07
Bonjour,

Il faut que tu split d'abort sur les sauts de lignes (VbCrLf) puis pour chaque lignes les espaces (" ")

http://nhen0039.chez-alice.fr/index.php
0
VBax Messages postés 3 Date d'inscription jeudi 17 juillet 2008 Statut Membre Dernière intervention 18 juillet 2008
17 juil. 2008 à 18:38
Ok merci beaucoup pour la réponse NHenry mais justement comment je fais pour spliter sur les lignes? 

Spliter les données sur des colonnes séparées je m'en sortirais mais là mon problème c'est que toutes les lignes du texte se mettent dans la première ligne du tableur (j'espère que je parviens à me faire comprendre...). Du coup, je m'en sors pas. Si tu peut me préciser comment spliter sur les lignes ce serait vraiment cool!!.. (commande VbCrLf) c'est ça?

Merci encore pour ta réponse

VBax
0
bonjourcheval Messages postés 228 Date d'inscription mercredi 13 décembre 2000 Statut Membre Dernière intervention 8 août 2011
17 juil. 2008 à 19:35
En fait, c'est la Commande Split.

Dim maChaine as string
dim ChaineSplitter() as string

maChaine = "bon / test / de / split"
ChaineSplitter = Split(maChaine,"/")

Donc, dans ton cas, Il faut que tu fasses d'abord un split avec VbCrlf. C'est la constante pour les "enter" ou retour de chariot comme disait mon prof d'info ^^

'Cette commande donnera un vecteur avec chaques lignes de ton fichier
UneLigneDuFichier= Split(TachainecontenantTouteLesLignes, vbCrlf)

ensuite

'Cette command donnera un vecteur avec chaque info d'une ligne
LesDonnéesd'uneLigne = Split(UneLigneDuFichier(0), vbTab)

VbTab est la constant de tabulations. Si ça fonction pas, essaie de mettre une espace comme caractère de séparation Split ( uneChaine, " ")

Voilà

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
0
VBax Messages postés 3 Date d'inscription jeudi 17 juillet 2008 Statut Membre Dernière intervention 18 juillet 2008
18 juil. 2008 à 17:38
Merci bonjourcheval... je vais essayer. J'ai l'impression que c'est exactement ce qu'il me fallait!!

Je te tiens au courant.

VBax
0
Rejoignez-nous