VBA fichier text en xls tout en filtrant

Bonjour,

À parti d'un fichier text, je désire obtenir un fichier excel en ne retenant qu'une portion de l'information d'un

fichier texte simplifié suivant:

MLUY 271325Z 22018G24KT 5/8SM R24R/P6000FT/D R24L/P6000FT/D -SN DRSN OVC012 M00/ RMK SN3SF5=

MLUY 271332Z 23016G21KT 3/8SM R24R/4000VP6000FT/D R24L/P6000FT/D SN DRSN VV004 00/ RMK SN8=

MLUY 271342Z 22016KT 3/4SM R24R/2600V5500FT/N R24L/2800V5000FT/N -SN DRSN SCT007 OVC018 M00/

RESN RMK SF3SC5=

(à noter que chaque message se termine par le signe "=" et correspondront à une ligne dans excel).

je désire avoir dans le fichier xls:

col A: les 4 premières lettres du message (dans ce cas, CMLU)

Col B: les 6 chiffres suivants (pour le premier message, on obtient: 271325)

Col C: les 3 chiffres suivants (après le Z, soit 220 pour le message 1)

Col D: les 2 chiffres suivants (soit 18 pour le message 1)

Col E: le nombre après G (peut-être formé de 2 ou 3 chiffres, si le G est absent on laisse la case vide).

Col J: Tout le texte après RMK

Les colonnes F, G, H I sont laissées vides.

Pour plus de détails, les fichiers joints peuvent être consultés.

23metar3.txt (1.37 Ko)
18metar3.xls (13.50 Ko)

Merci d'avance

Émil

Bonjour,

Une tentative ici, certaine lignes n'ont pas le "RMK" sur la bonne ligne

ces lignes seront à revoir manuellement

Amicalement

Claude

22emil-split2.zip (16.91 Ko)

Bonjour Claude,

j'ai testé ta macro avec un fichier beaucoup plus volumineux et plus complexe et, elle fonctionne convenablement. Maintenant, par soucis de clarté, j'ai évité de le mentionner dans le premier post mais il existe un deuxième type de messages provenant de stations auto dont le message est légèrement différent.

Serait-il possible que ta VBA puisse également lire ces messages AUTO. Dans le fichier joint, j'ai copié les messages

texte dans le feuillet: message_auto et le résultat attendu est dans le feuillet: métar_auto.

19metar4.zip (5.69 Ko)

Enfin, pour ne pas te créer de nouvelles surprises, mon but final serait que la macro puisse produire un tableau excel avec comme intrant, un amalgame de messages manuelles (les premières fournies dans le post initial) et de messages AUTO afin de produire un seul tableau tel qu'illustré dans le feuillet amalgame.

Merci

Émil

Bonsoir,

Peut-on compter sur les 4 lettres du début ?

MQVW pour AUTO

MLUY

Faudra t-il trier par date les résultats ?

Combien de lignes au total ? (environ)

à te relire

Claude

Bonsoir Claude,

1. Quelque soit le message (humain ou AUTO), le format de départ est toujours le même de telle sorte que ce dernier débute toujours par 4 lettres (qui identifient la station). Puisqu'il y a environ 50 stations en jeu, ces lettres peuvent toutefois changer selon la station qui envoit le message.

2. Faut-il trier par date? Ce n'est pas nécessaire.

3. Pour un mois de données, j'estime le nombre de lignes à environ 50,000.

À noter que les messages AUTO sont toujours identifiés au début du message et ce, toujours dans le même format.

Émil

re,

Départ en feuille "amalgame" (ligne 2), résultats en feuille "Résultats"

même remarque que précédemment sur certaines lignes

tu nous diras le temps de traitement des 50 000 lignes

Amicalement

Claude

20emil-split-3.zip (21.34 Ko)

Bonsoir Claude,

J'ai testé la VBA sur un fichier de 54,614 lignes et la conversion s'est effectué en 12 secondes.

Merci beaucoup

Émil

Rechercher des sujets similaires à "vba fichier text xls tout filtrant"