Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Extraction de lignes d'un fichier texte selon un argument

Keido

XLDnaute Nouveau
Bonjour,

Je cherche à faire un tri dans un fichier texte afin de le charger dans une base de données d'un logiciel prévu pour lire un certain format (respect des espaces).
Le fichier de base que j'ai à traiter tous les 7-10 jours est composé de plusieurs milliers de lignes ... à la main c'est plutôt fastidieux et carrément pas intéressant à faire.
J'ai besoin de le décomposer en plusieurs fichiers texte, un par nationalité ( noté NAT1-NAT2-NAT3 dans l'exemple ci dessous).

Mon problème est que la ligne qui contient la nationalité doit être impérativement extraite avec les deux qui la suive.
Je ne sais pas du tout par ou commencer.
Je me dis que Excel peut m'être d'une grande aide pour ça mais je n'ai pas assez de connaissances pour m'en sortir seul

Le fichier de base est construit comme suit :

La 1ere ligne est composée d'un nom suivi de la nationalité associée (trigramme ou quadrigramme)
deux lignes contenant les informations importantes codées en groupe de chiffres et lettres suivant le format de l'exemple ci-dessous.
La 2eme ligne commence toujours par un "1" et la 3eme toujours par un "2" (si ça peut être utile pour faire le tri).
Je n'ai pas toujours besoin d'extraire toutes les nationalités (par ex, sur le fichier ci- dessous extraction de la NAT1 et NAT 3 seulement.
Je peux faire l'extraction en plusieurs fois en changeant la variable à la main.

Mon problème est que lors de l'import de mon fichier texte vers Excel j'ai le même format que ci-dessous (tout en colonne A et chaque ligne dans une case différente).
Il me faudrait pouvoir mettre automatiquement la ligne 1 dans la case A1, la 2eme dans la case B1, la 3eme dans la C1 puis la 4 dans la A2, la 5eme dans B2, la 6eme dans C2 pour faire le tri via le filtre Excel. avant de tout remettre dans le format précédent ou de pouvoir faire une macro qui cherche la variable de nationalité voulue (NAT1-NAT2-NAT3...) et qui colle la ligne trouvée + les 2 suivantes dans un autre onglet avant d'exporter en format texte par exemple.

Le but final étant de pouvoir faire un export et de se retrouver avec un fichier texte par nationalité contenant tous les groupes de 3 lignes qui correspondent a la bonne nationalité.

Petit exemple pour mieux comprendre :

Mon fichier en vrac à trier (raccourci pour l'exemple):

PREMIER NOM NAT1
1 12345L 12345L 12345.12345678 .12345678 12345-6 -12345-6 1 1234
2 12345 12.1234 123.1234 1234567 123.1234 123.1234 12.12345678912345
DEUXIEME NOM NAT2
1 12345L 12345L 12345.12345678 .12345678 12345-6 -12345-6 1 1234
2 12345 12.1234 123.1234 1234567 123.1234 123.1234 12.12345678912345
TROISIEME NOM NAT3
1 12345L 12345L 12345.12345678 .12345678 12345-6 -12345-6 1 1234
2 12345 12.1234 123.1234 1234567 123.1234 123.1234 12.12345678912345
QUATRIEME NOM NAT1
1 12345L 12345L 12345.12345678 .12345678 12345-6 -12345-6 1 1234
2 12345 12.1234 123.1234 1234567 123.1234 123.1234 12.12345678912345
CINQUIEME NOM NAT1
1 12345L 12345L 12345.12345678 .12345678 12345-6 -12345-6 1 1234
2 12345 12.1234 123.1234 1234567 123.1234 123.1234 12.12345678912345
SIXIEME NOM NAT2
1 12345L 12345L 12345.12345678 .12345678 12345-6 -12345-6 1 1234
2 12345 12.1234 123.1234 1234567 123.1234 123.1234 12.12345678912345

Je cherche donc à obtenir 3 fichiers différents :

Extraction fichier NAT1:

PREMIER NOM NAT1
1 12345L 12345L 12345.12345678 .12345678 12345-6 -12345-6 1 1234
2 12345 12.1234 123.1234 1234567 123.1234 123.1234 12.12345678912345
QUATRIEME NOM NAT1
1 12345L 12345L 12345.12345678 .12345678 12345-6 -12345-6 1 1234
2 12345 12.1234 123.1234 1234567 123.1234 123.1234 12.12345678912345
CINQUIEME NOM NAT1
1 12345L 12345L 12345.12345678 .12345678 12345-6 -12345-6 1 1234
2 12345 12.1234 123.1234 1234567 123.1234 123.1234 12.12345678912345

Extraction fichier NAT2:

DEUXIEME NOM NAT2
1 12345L 12345L 12345.12345678 .12345678 12345-6 -12345-6 1 1234
2 12345 12.1234 123.1234 1234567 123.1234 123.1234 12.12345678912345
SIXIEME NOM NAT2
1 12345L 12345L 12345.12345678 .12345678 12345-6 -12345-6 1 1234
2 12345 12.1234 123.1234 1234567 123.1234 123.1234 12.12345678912345

Extraction fichier NAT3:

TROISIEME NOM NAT3
1 12345L 12345L 12345.12345678 .12345678 12345-6 -12345-6 1 1234
2 12345 12.1234 123.1234 1234567 123.1234 123.1234 12.12345678912345

Si vous avez une piste ou une solution à me proposer j'en serai ravi.
Merci de m'avoir lu,
En attendant vos réponses,

Keido
 

Pièces jointes

  • Fichier a trier selon nationalité.txt
    965 bytes · Affichages: 5

Keido

XLDnaute Nouveau
Au top, merci beaucoup pour ta réactivité !!!
J'ai propagé les formules, je peux traiter 6666 groupes de 3 lignes, mon cerveau mais surtout mes yeux te disent merci !!!

Keido
 

Keido

XLDnaute Nouveau
Forcément c'était trop beau ... le format des fichiers vient de changer, la ligne ne se termine plus par la nationalité, des informations sont ajoutées derrière.
Y a t'il possibilité d'adapter la formule pour trier avec un tri/quadrigramme quelque soit sa place dans la 1ere ligne (en le rentrant à la main dans une case par exemple) ?
Désolé de vous embêter à nouveau aussi vite ...

Keido
 

micheldu52

XLDnaute Occasionnel
Bonsoir,
Désolé, j'étais en mission à l'étranger….
En fichier joint ta demande.
Trois précisions:
1) ne touche pas à L1 "non trouvé" cela sert si tu oublies qq chose
2) De M1 à S1 indique ce que tu cherches
3) si S1 ne suffit pas insère des colonnes mais entre N et R pour que la formule s'ajuste sans erreur
A priori ca devrait s'adapter à ton nouveau cas de figure.
Cordialement,
Michel
 

Pièces jointes

  • voili voilou (1).xlsx
    12.9 KB · Affichages: 9

Discussions similaires

Réponses
5
Affichages
400
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…