Lire un fichier texte et récupérer son contenu dans excel

Résolu
olivier857 Messages postés 188 Date d'inscription mardi 21 décembre 2004 Statut Membre Dernière intervention 10 avril 2008 - 2 janv. 2007 à 20:32
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 4 janv. 2007 à 14:55
Bonjour à tous,

Je me pose 2 questions :

1ère :
Comment lire un Fichier Texte ligne par ligne et le mettre dans une Feuille Excel ?

2ème :
Comment gérer un fichier qui possède différents type de séparateur de données afin de différencier dans une ligne différentes catégories de données ?

Je m'explique : Je voudrais interpréter un fichier ou les données sont séparés par des ";" et parfois par des "//1//" afin d'indiquer qu'on passe à un nouveau type de données ou ces données sont également séparé par des ";". Le but est pour moi de pouvoir récupérer dans excel seulement les données des type de données que je souhaite et ne pas récupérer les autres.

Exemple de fichier texte :
toto;tutu;titi;tata//1//10;12;13;15//1//lolo;lulu;lili;lala//1//maison;immeuble;maison
 

18 réponses

cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
2 janv. 2007 à 20:51
Salut
Bah les fichiers de données séparées par des marqueurs, c'est une structure CSV.
Par contre, tu ne pourras lui dire de séparer un coup avec un ; et en même temps aussi avec //1//.
Il faudra le faire en deux étapes :
- Tu lis/charges le fichier avec séparateur ";"
- Tu analyses ensuite chaque cellule à la recherche des //1// et tu isoles les données internes.
Pour cette deuxième étape, il faudra passer par une macro et faire une boucle qui devra chercher :
Dans quelle cellule apparait le 1er //1//
Dans quelle cellule apparait le //1// suivant et concaténer les données situées entre deux.
et ainsi de suite.
Va falloir utiliser les fonctions de recherche de texte VBA (langage macro) ou celle de VB (instr, left, right, mid ...)

Ou ... faire l'inverse :
- Charger le fichier avec séparateur //1//
- puis découper les données de chaque cellule avec le ";"
Ce sera peut être plus simple à faire ... bof

Beau casse tête !

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3