Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Tri sur fichier log (8 lignes solidaires par entrée)

10 réponses
Avatar
Jean-Claude
Bonjour à tous,

Là, j'ai un peu l'impression d'abuser mais comme je ne sais pas trouver la
solution moi-même...

J'ai un fichier log que j'importe sous EXCEL et dont les entrées ont
toujours 8 lignes et qui
constituent ensembles une entrée de log.

Exemple:

11.10.2007 16:29:23 . 456 : Input: <US>Ch132
11.10.2007 16:29:23 . 456 : Input String: Ch 132
11.10.2007 16:29:23 . 456 : Pager ID: 995
11.10.2007 16:29:23 . 456 : Display Text: APP Ch 132
11.10.2007 16:29:23 . 456 : Voice File: 1_995
11.10.2007 16:29:23 . 456 : Priority: 1
11.10.2007 16:29:23 . 456 : Alarm No: 2090
11.10.2007 16:29:23 . 456 : Alarm "CHAMBRE 1ER" queued for delivery

11.10.2007 16:50:23 . 470 : Input: <US>Ch133
11.10.2007 16:50:23 . 470 : Input String: Ch 133
11.10.2007 16:50:23 . 470 : Pager ID: 995
11.10.2007 16:5023 . 470 : Display Text: APP Ch 133
11.10.2007 16:50:23 . 470 : Voice File: 1_995
11.10.2007 16:50:23 . 470 : Priority: 1
11.10.2007 16:50:23 . 470 : Alarm No: 2090
11.10.2007 16:50:23 . 470 : Alarm "CHAMBRE 1ER" queued for delivery



Le fichier est constitué de quelques centaines d'entrées tous les jours (1
entrée = 8 lignes)

J'aimerais dans ce fichier rechercher toutes les entrées comportant un
critère unique du log dans l'exemple, APP Ch 132 ou 133 et qu'il me
sélectionne les
8 lignes chaque fois qu'il les trouve dans le fichier! Je pourrais alors
répéter l'opération pour le critère suivant, ici exemple APP Ch 133 et ainsi
de suite!

Mon but étant de copier toutes les entrées correspondant à un critère (APP
Ch 132 dans l'exemple) et de les copier ailleurs.

Une solution pourrait également être qu'il me trie (regroupe) le fichier en
me groupant toutes les lignes appartenant au même critère.


J'ai essayé avec l'enregistreur de macro mais ce n'est pas possible car il
n'enregistre pas la fonction "Rechercher" donc je ne sais pas comment
continuer.

Si quelqu'un a quelques minutes ou une solution de tri existante (le pb
c'est que les 8 lignes doivent toujours rester "solidaires")...


Merci d'avance pour vos réponses éventuelles!


Jean-Claude

10 réponses

Avatar
Papiauche
Pour un problème similaire, une solution efficace sans macro que j'avais
trouvée est le filtre élaboré qui permet d'extraire les résultats (dans le
cas d'espèce les huit champ) soit dans la même feuille soit dans une autre
feuille.
Attention toutefois en cas de critères multiples de mémoire seul le mode
"et" est appliqué. Il faut donc ruser sur les critères si on veut faire des
"ou".

Cordialement
"Jean-Claude" <perlerjc(news_remove)@ateliers-gerine.ch> a écrit dans le
message de news:
Bonjour à tous,

Là, j'ai un peu l'impression d'abuser mais comme je ne sais pas trouver la
solution moi-même...

J'ai un fichier log que j'importe sous EXCEL et dont les entrées ont
toujours 8 lignes et qui
constituent ensembles une entrée de log.

Exemple:

11.10.2007 16:29:23 . 456 : Input: <US>Ch132
11.10.2007 16:29:23 . 456 : Input String: Ch 132
11.10.2007 16:29:23 . 456 : Pager ID: 995
11.10.2007 16:29:23 . 456 : Display Text: APP Ch 132
11.10.2007 16:29:23 . 456 : Voice File: 1_995
11.10.2007 16:29:23 . 456 : Priority: 1
11.10.2007 16:29:23 . 456 : Alarm No: 2090
11.10.2007 16:29:23 . 456 : Alarm "CHAMBRE 1ER" queued for delivery

11.10.2007 16:50:23 . 470 : Input: <US>Ch133
11.10.2007 16:50:23 . 470 : Input String: Ch 133
11.10.2007 16:50:23 . 470 : Pager ID: 995
11.10.2007 16:5023 . 470 : Display Text: APP Ch 133
11.10.2007 16:50:23 . 470 : Voice File: 1_995
11.10.2007 16:50:23 . 470 : Priority: 1
11.10.2007 16:50:23 . 470 : Alarm No: 2090
11.10.2007 16:50:23 . 470 : Alarm "CHAMBRE 1ER" queued for delivery



Le fichier est constitué de quelques centaines d'entrées tous les jours (1
entrée = 8 lignes)

J'aimerais dans ce fichier rechercher toutes les entrées comportant un
critère unique du log dans l'exemple, APP Ch 132 ou 133 et qu'il me
sélectionne les
8 lignes chaque fois qu'il les trouve dans le fichier! Je pourrais alors
répéter l'opération pour le critère suivant, ici exemple APP Ch 133 et
ainsi
de suite!

Mon but étant de copier toutes les entrées correspondant à un critère (APP
Ch 132 dans l'exemple) et de les copier ailleurs.

Une solution pourrait également être qu'il me trie (regroupe) le fichier
en
me groupant toutes les lignes appartenant au même critère.


J'ai essayé avec l'enregistreur de macro mais ce n'est pas possible car il
n'enregistre pas la fonction "Rechercher" donc je ne sais pas comment
continuer.

Si quelqu'un a quelques minutes ou une solution de tri existante (le pb
c'est que les 8 lignes doivent toujours rester "solidaires")...


Merci d'avance pour vos réponses éventuelles!


Jean-Claude




Avatar
Jac
Bonjour Jean-Claude,

voici un fichier qui fait le traitement attendu :
http://cjoint.com/?kmpiIXEIwK
Les logs doivent être dans le classeur actif classeur à partir de A1.
Toutes les données sont renvoyées dans un nouveau classeur.
A toi après d'en faire les sélections et l'usage qui te conviennent.

On en reparle quand tu veux,

Jac

Pour info : j'ai mis une heure pour répondre à cette question.

"Jean-Claude" <perlerjc(news_remove)@ateliers-gerine.ch> a écrit dans le
message de news:
Bonjour à tous,

Là, j'ai un peu l'impression d'abuser mais comme je ne sais pas trouver la
solution moi-même...

J'ai un fichier log que j'importe sous EXCEL et dont les entrées ont
toujours 8 lignes et qui
constituent ensembles une entrée de log.

Exemple:

11.10.2007 16:29:23 . 456 : Input: <US>Ch132
11.10.2007 16:29:23 . 456 : Input String: Ch 132
11.10.2007 16:29:23 . 456 : Pager ID: 995
11.10.2007 16:29:23 . 456 : Display Text: APP Ch 132
11.10.2007 16:29:23 . 456 : Voice File: 1_995
11.10.2007 16:29:23 . 456 : Priority: 1
11.10.2007 16:29:23 . 456 : Alarm No: 2090
11.10.2007 16:29:23 . 456 : Alarm "CHAMBRE 1ER" queued for delivery

11.10.2007 16:50:23 . 470 : Input: <US>Ch133
11.10.2007 16:50:23 . 470 : Input String: Ch 133
11.10.2007 16:50:23 . 470 : Pager ID: 995
11.10.2007 16:5023 . 470 : Display Text: APP Ch 133
11.10.2007 16:50:23 . 470 : Voice File: 1_995
11.10.2007 16:50:23 . 470 : Priority: 1
11.10.2007 16:50:23 . 470 : Alarm No: 2090
11.10.2007 16:50:23 . 470 : Alarm "CHAMBRE 1ER" queued for delivery



Le fichier est constitué de quelques centaines d'entrées tous les jours (1
entrée = 8 lignes)

J'aimerais dans ce fichier rechercher toutes les entrées comportant un
critère unique du log dans l'exemple, APP Ch 132 ou 133 et qu'il me
sélectionne les
8 lignes chaque fois qu'il les trouve dans le fichier! Je pourrais alors
répéter l'opération pour le critère suivant, ici exemple APP Ch 133 et
ainsi
de suite!

Mon but étant de copier toutes les entrées correspondant à un critère (APP
Ch 132 dans l'exemple) et de les copier ailleurs.

Une solution pourrait également être qu'il me trie (regroupe) le fichier
en
me groupant toutes les lignes appartenant au même critère.


J'ai essayé avec l'enregistreur de macro mais ce n'est pas possible car il
n'enregistre pas la fonction "Rechercher" donc je ne sais pas comment
continuer.

Si quelqu'un a quelques minutes ou une solution de tri existante (le pb
c'est que les 8 lignes doivent toujours rester "solidaires")...


Merci d'avance pour vos réponses éventuelles!


Jean-Claude


Avatar
Jean-Claude
Bonsoir Jac,

Merci beaucoup pour cette réponse que je viens de découvrir!
Merci surtout pour cette heure de travail, cela me gêne de t'avoir mis ainsi
à contribution...


Merci également à Papiauche pour sa réponse


J'essaie la chose dès demain et vous donne des nouvelles.


Bonne nuit, merci.


Bien cordialement,


Jean-Claude


"Jac" wrote in message
news:
Bonjour Jean-Claude,

voici un fichier qui fait le traitement attendu :
http://cjoint.com/?kmpiIXEIwK
Les logs doivent être dans le classeur actif classeur à partir de A1.
Toutes les données sont renvoyées dans un nouveau classeur.
A toi après d'en faire les sélections et l'usage qui te conviennent.

On en reparle quand tu veux,

Jac

Pour info : j'ai mis une heure pour répondre à cette question.

"Jean-Claude" <perlerjc(news_remove)@ateliers-gerine.ch> a écrit dans le
message de news:
Bonjour à tous,

Là, j'ai un peu l'impression d'abuser mais comme je ne sais pas trouver
la
solution moi-même...

J'ai un fichier log que j'importe sous EXCEL et dont les entrées ont
toujours 8 lignes et qui
constituent ensembles une entrée de log.

Exemple:

11.10.2007 16:29:23 . 456 : Input: <US>Ch132
11.10.2007 16:29:23 . 456 : Input String: Ch 132
11.10.2007 16:29:23 . 456 : Pager ID: 995
11.10.2007 16:29:23 . 456 : Display Text: APP Ch 132
11.10.2007 16:29:23 . 456 : Voice File: 1_995
11.10.2007 16:29:23 . 456 : Priority: 1
11.10.2007 16:29:23 . 456 : Alarm No: 2090
11.10.2007 16:29:23 . 456 : Alarm "CHAMBRE 1ER" queued for delivery

11.10.2007 16:50:23 . 470 : Input: <US>Ch133
11.10.2007 16:50:23 . 470 : Input String: Ch 133
11.10.2007 16:50:23 . 470 : Pager ID: 995
11.10.2007 16:5023 . 470 : Display Text: APP Ch 133
11.10.2007 16:50:23 . 470 : Voice File: 1_995
11.10.2007 16:50:23 . 470 : Priority: 1
11.10.2007 16:50:23 . 470 : Alarm No: 2090
11.10.2007 16:50:23 . 470 : Alarm "CHAMBRE 1ER" queued for delivery



Le fichier est constitué de quelques centaines d'entrées tous les jours
(1
entrée = 8 lignes)

J'aimerais dans ce fichier rechercher toutes les entrées comportant un
critère unique du log dans l'exemple, APP Ch 132 ou 133 et qu'il me
sélectionne les
8 lignes chaque fois qu'il les trouve dans le fichier! Je pourrais alors
répéter l'opération pour le critère suivant, ici exemple APP Ch 133 et
ainsi
de suite!

Mon but étant de copier toutes les entrées correspondant à un critère
(APP
Ch 132 dans l'exemple) et de les copier ailleurs.

Une solution pourrait également être qu'il me trie (regroupe) le fichier
en
me groupant toutes les lignes appartenant au même critère.


J'ai essayé avec l'enregistreur de macro mais ce n'est pas possible car
il
n'enregistre pas la fonction "Rechercher" donc je ne sais pas comment
continuer.

Si quelqu'un a quelques minutes ou une solution de tri existante (le pb
c'est que les 8 lignes doivent toujours rester "solidaires")...


Merci d'avance pour vos réponses éventuelles!


Jean-Claude






Avatar
Jean-Claude
Bonjour Jac,


Encore merci pour ton aide: je viens de faire un premier test et j'ai deux
pb:


- pour simplifier, j'avais raccourci un peu la première ligne du log
d'exemple collé dans le 1er message. Alors bien sûr petit problème créé par
moi. J'aurais dû mettre le log réel à disposition mais je ne pensais pas que
quelqu'un irait si loin...

- j'ai modifié le log pour faire un essai et une erreur (1004: la méthode
AutoFilter a échoué) se produit expliquant probablement pourquoi il ne
récupère pas les 8 lignes mais qu'une seule.


J'ai mis un échantillon réel d'un fichier log avec une cinquantaine
d'entrées ici: http://cjoint.com/?kol5FiePNh

Si tu as encore un peu de temps pour moi, pourrais-tu modifier le code par
rapport au log réel et faire un petit test pour voir d'où vient l'erreur?

Je vais alors essayer de comprendre (c'est mon but!) comment tu as traité ce
problème!


Dans tous les cas, encore une fois un très grand merci de ton aide
appréciée!


Jean-Claude
Avatar
Jac
... il est évident que si ton exemple ne correspond pas à la réalité et que
si tu n'est pas en mesure d'adapter une solution à tes vraies données, tu as
une solution qui ne correspond pas à ton besoin final...

Je regarde ce que je peux faire.

Jac

"Jean-Claude" <perlerjc(news_remove)@ateliers-gerine.ch> a écrit dans le
message de news: uAaQk$
Bonjour Jac,


Encore merci pour ton aide: je viens de faire un premier test et j'ai deux
pb:


- pour simplifier, j'avais raccourci un peu la première ligne du log
d'exemple collé dans le 1er message. Alors bien sûr petit problème créé
par moi. J'aurais dû mettre le log réel à disposition mais je ne pensais
pas que quelqu'un irait si loin...

- j'ai modifié le log pour faire un essai et une erreur (1004: la méthode
AutoFilter a échoué) se produit expliquant probablement pourquoi il ne
récupère pas les 8 lignes mais qu'une seule.


J'ai mis un échantillon réel d'un fichier log avec une cinquantaine
d'entrées ici: http://cjoint.com/?kol5FiePNh

Si tu as encore un peu de temps pour moi, pourrais-tu modifier le code
par rapport au log réel et faire un petit test pour voir d'où vient
l'erreur?

Je vais alors essayer de comprendre (c'est mon but!) comment tu as traité
ce problème!


Dans tous les cas, encore une fois un très grand merci de ton aide
appréciée!


Jean-Claude







Avatar
Jac
http://cjoint.com/?koxTyAIAqf

"Jac" a écrit dans le message de news:
uo$
... il est évident que si ton exemple ne correspond pas à la réalité et
que si tu n'est pas en mesure d'adapter une solution à tes vraies données,
tu as une solution qui ne correspond pas à ton besoin final...

Je regarde ce que je peux faire.

Jac

"Jean-Claude" <perlerjc(news_remove)@ateliers-gerine.ch> a écrit dans le
message de news: uAaQk$
Bonjour Jac,


Encore merci pour ton aide: je viens de faire un premier test et j'ai
deux pb:


- pour simplifier, j'avais raccourci un peu la première ligne du log
d'exemple collé dans le 1er message. Alors bien sûr petit problème créé
par moi. J'aurais dû mettre le log réel à disposition mais je ne pensais
pas que quelqu'un irait si loin...

- j'ai modifié le log pour faire un essai et une erreur (1004: la méthode
AutoFilter a échoué) se produit expliquant probablement pourquoi il ne
récupère pas les 8 lignes mais qu'une seule.


J'ai mis un échantillon réel d'un fichier log avec une cinquantaine
d'entrées ici: http://cjoint.com/?kol5FiePNh

Si tu as encore un peu de temps pour moi, pourrais-tu modifier le code
par rapport au log réel et faire un petit test pour voir d'où vient
l'erreur?

Je vais alors essayer de comprendre (c'est mon but!) comment tu as traité
ce problème!


Dans tous les cas, encore une fois un très grand merci de ton aide
appréciée!


Jean-Claude











Avatar
Jean-Claude
Bonjour Jac,


Merci beaucoup pour le nouvel envoi du code hier soir.
Je comprends bien ta réflexion, c'est bien pour cela que j'avais mis dans le
premier post que j'avais un peu l'impression d'abuser quelque peu en posant
ce problème ;-(((

Ton code donnerait toute satisfaction mais il fait encore la même erreur que
signalé: (1004: la méthode
AutoFilter a échoué) ce qui fait probablement qu'il ne fait pas le
classement dans l'ordre du critère de choix.


J'ai essayé avec le même fichier que toi: est-ce un problème de version
EXCEL (chez moi EXCEL 2003).

Qu'en penses-tu?

Un très grand merci de ton aide!


Jean-Claude






"Jac" a écrit dans le message de
news:
http://cjoint.com/?koxTyAIAqf



Avatar
Jac
Bonjour Jean-Claude,

pour régler le problème, quand il se présente, tu cliques sur débogage, et
là, tu supprimes la zone surlignée en jaune
-------------------------------------
[A1].AutoFilter
-------------------------------------
puis tu enregistres en cliquant sur la disquette dans les icônes et tu
fermes la fenêtre de visual basic.
Tu ne devais plus avoir ce problème. A toi de mettre en place le filtre
automatique puisqu'il ne veut pas le faire manuellement. Sur XP, pas de
problème.

Attention : le filtre automatique ne fait aucun classement, il se contente
de permettre de filtrer sur un ou plusieurs critères.

On en reparle quand tu veux.

Jac

"Jean-Claude" <perlerjc(news_remove)@ateliers-gerine.ch> a écrit dans le
message de news: %
Bonjour Jac,


Merci beaucoup pour le nouvel envoi du code hier soir.
Je comprends bien ta réflexion, c'est bien pour cela que j'avais mis dans
le
premier post que j'avais un peu l'impression d'abuser quelque peu en
posant
ce problème ;-(((

Ton code donnerait toute satisfaction mais il fait encore la même erreur
que
signalé: (1004: la méthode
AutoFilter a échoué) ce qui fait probablement qu'il ne fait pas le
classement dans l'ordre du critère de choix.


J'ai essayé avec le même fichier que toi: est-ce un problème de version
EXCEL (chez moi EXCEL 2003).

Qu'en penses-tu?

Un très grand merci de ton aide!


Jean-Claude

"Jac" a écrit dans le message de
news:
http://cjoint.com/?koxTyAIAqf







Avatar
Jean-Claude
Bonjour Jac,


Je ne sais pas comment te remercier: cela fonctionne à merveille et j'ai pu
commencer l'analyse que je devais faire.

Sans ton aide c'était la galère, travail de bénédictin, plus de 45'000
lignes pour chaque mois à traiter à la main.


Je ne l'aurais pas fait mais n'aurais pas eu le résultat que j'ai déjà en
partie.

Par contre comprendre le code, comprendre comment tu l'as fait, c'est une
autre histoire ;-(((

Alors merci encore mille fois pour cette aide inespérée!


Jean-Claude


"Jac" a écrit dans le message de
news:
Bonjour Jean-Claude,

pour régler le problème, quand il se présente, tu cliques sur débogage, et
là, tu supprimes la zone surlignée en jaune
-------------------------------------
[A1].AutoFilter
-------------------------------------
puis tu enregistres en cliquant sur la disquette dans les icônes et tu
fermes la fenêtre de visual basic.
Tu ne devais plus avoir ce problème. A toi de mettre en place le filtre
automatique puisqu'il ne veut pas le faire manuellement. Sur XP, pas de
problème.

Attention : le filtre automatique ne fait aucun classement, il se contente
de permettre de filtrer sur un ou plusieurs critères.

On en reparle quand tu veux.

Jac

"Jean-Claude" <perlerjc(news_remove)@ateliers-gerine.ch> a écrit dans le
message de news: %
Bonjour Jac,


Merci beaucoup pour le nouvel envoi du code hier soir.
Je comprends bien ta réflexion, c'est bien pour cela que j'avais mis
dans


le
premier post que j'avais un peu l'impression d'abuser quelque peu en
posant
ce problème ;-(((

Ton code donnerait toute satisfaction mais il fait encore la même erreur
que
signalé: (1004: la méthode
AutoFilter a échoué) ce qui fait probablement qu'il ne fait pas le
classement dans l'ordre du critère de choix.


J'ai essayé avec le même fichier que toi: est-ce un problème de version
EXCEL (chez moi EXCEL 2003).

Qu'en penses-tu?

Un très grand merci de ton aide!


Jean-Claude

"Jac" a écrit dans le message de
news:
http://cjoint.com/?koxTyAIAqf











Avatar
Jean-Claude
Bonjour Jac,

Le problème que j'ai soulevé ici dans le groupe étant réglé, pourrait tu
m'envoyer un message sur mon adresse mail (enlève les parenthèses et leur
contenu)?
J'ai essayé de deviner ton adresse mais pas moyen...

J'aimerais t'envoyer un mail privé!

A bientôt, cordialement


Jean-Claude



"Jac" a écrit dans le message de
news:
Bonjour Jean-Claude,

pour régler le problème, quand il se présente, tu cliques sur débogage, et
là, tu supprimes la zone surlignée en jaune
-------------------------------------
[A1].AutoFilter
-------------------------------------
puis tu enregistres en cliquant sur la disquette dans les icônes et tu
fermes la fenêtre de visual basic.
Tu ne devais plus avoir ce problème. A toi de mettre en place le filtre
automatique puisqu'il ne veut pas le faire manuellement. Sur XP, pas de
problème.

Attention : le filtre automatique ne fait aucun classement, il se contente
de permettre de filtrer sur un ou plusieurs critères.

On en reparle quand tu veux.

Jac

"Jean-Claude" <perlerjc(news_remove)@ateliers-gerine.ch> a écrit dans le
message de news: %
Bonjour Jac,


Merci beaucoup pour le nouvel envoi du code hier soir.
Je comprends bien ta réflexion, c'est bien pour cela que j'avais mis
dans


le
premier post que j'avais un peu l'impression d'abuser quelque peu en
posant
ce problème ;-(((

Ton code donnerait toute satisfaction mais il fait encore la même erreur
que
signalé: (1004: la méthode
AutoFilter a échoué) ce qui fait probablement qu'il ne fait pas le
classement dans l'ordre du critère de choix.


J'ai essayé avec le même fichier que toi: est-ce un problème de version
EXCEL (chez moi EXCEL 2003).

Qu'en penses-tu?

Un très grand merci de ton aide!


Jean-Claude

"Jac" a écrit dans le message de
news:
http://cjoint.com/?koxTyAIAqf