Comparer plusieurs fichiers Excel et déterminer les lignes i

Bonjour

J'ai besoin de comparer plusieurs fichier Excel pour voir si les mêmes postes reviennent régulièrement.

Toutes les informations sont entrer en dur dans le fichier excel, dans la colonne A

Ex pour la cellule A2:

W1184032,11/03/13 14:54:29,"Type du SE:Windows XP,Plate-forme de SErofessional,Version du SE:5.1,Version de Service Pack du SE:Service Pack 3",4.6.0.1694,8.8.0.849.Wrk,5400.1158,10.148.4.18,6968.0000

Toutes les autres ligne sont du meme genre.

Il faudrait que je puisse obtenir le nombre de poste identique déterminer par une @IP

Et ensuite suivant leurs @IP determiné la date la plus ancienne du poste et la date la plus recente ou ils apparaissent

Pouvez vous m'aidez ?

Salut Nioko et bienvenue sur le Forum,

En l’absence de tes fichiers, j’ai essayé de les imaginer. J’ai donc créé les fichiers "nokio1" et "nokio2" ci-joints.

Ensuite j’ai placé une macro dans le fichier "Base" qui va chercher les renseignements dans les deux autres fichiers et les répertorie dans les 6 colonnes avec titres.

La seule condition est que tu dois placer ces trois fichiers seuls dans un dossier. Les fichiers "nioko1" et "nioko2" peuvent rester fermer lorsque tu déclenches la macro ; dans tous les cas, ils seront refermés par le code. Tu pourrais avoir 50 fichiers du genre des deux fichiers "nioko", ils seraient également visités et répertorier.

Cordialement.

26nioko1.xlsx (8.46 Ko)
30nioko2.xlsx (9.07 Ko)
57base.xlsm (23.02 Ko)

bonjour

Merci pour votre retour, ce que vous avez fais est très bien

pouvez vous commenter votre code svp

Voila ce que j'ai imaginé

Par contre les lignes à travaillé doivent commencé en cellule A2

La feuille principale qui permettra de synthétise toutes les informations

Adresse IP: elles seront collecté a partir des diferrentes page

Frequence : Elle determine le nombre d'@IP identique

Date au plus tot : la date a laquelle la 1ere @ a été trouvé

Date au plus tard : la date a laquelle la derniere @ a été trouvé

Ex: Fiche 1

Les informations seront disposé comme ceci dans les fiches

Ex: Fiche 2

Rersultat final : Les adresses IP sont classé avec pour chacune d'entre elle leurs 1ere et dernieres apparition

Ps: petite erreur sur le decoupage de l'adresse IP le dernier octets n'est pas pris en compte et un parti du champs precedent est ajouté a l'@IP


+Image :/

Salut,

Je n’ai pas compris grand-chose à tes explications, mais sur la base de copies d’écran je n’ai pas trop cherché non plus.

Tu ne dis pas grand-chose non plus à propos de mon premier travail : qu'est-ce qui est déjà correcte, qu'est-ce qui manque. Ti me donnes par exemple une explication : "Date au plus tot : la date a laquelle la 1ere @ a été trouvé", mais il me semble que j'avais déjà compris cela, non ?

Peux-tu alors me fournir 2 fichiers dans lesquels il faut aller chercher les informations et un fichier dans lequel tu voudrais les récolter et je verrai si les informations que tu as déjà données sont plus claires ou non. Ces fichiers n’ont pas besoin de comporter 50'000 lignes, mais quelques lignes bien représentatives.

Attention : Trop d’explications à trop d’endroits différents rend les choses encore plus compliquées.

Cordialement.

Oui desolé c'est vrai que tout cela est tres confus

En tout cas ce que vous avez fais ressemble parfaitement à mon idée de depart

je vous envoie les fichiers :

Bonjour,

Par hasard, un grand nombre de membres – dont toi - ont continué en même temps la discussion que l’on avait en cours et de plus je suis très pris ces jours en privé.

Je suis donc débordé et ne pourrai pas continuer ce fil avant 1 à 5 jours. Merci de patienter ; à moins qu’un autre membre ne reprenne le relais.

Cordialement.

Re-bonjour,

J'ai essayé d'avancer avec ton fichier. Regarde la nouvelle version ci-jointe dans laquelle j'ai essayé d'apporter le maximum de corrections par rapport à ce que j'ai pu comprendre de tes explications.

Pour tes adresses IP, je n’ai rien compris. Peux-tu aussi me donner 2 ou 3 exemples de données incorrectes – sur la base de TES fichiers «Liste_des_machines» - et me dire précisément ce que tu voudrais à la place. Avec tes petits dessins sur les copies d’écran que tu m’as fournies, je ne sais pas ce qui est correct ou non, ce qu’il y a en trop ou ce qui manque.

A te relire.

29basev2.xlsm (25.45 Ko)

Bonjour

Ce que je veux récupérer ce sont les adresses IP dans les fichiers et leurs dates au plus tot et au plus tard

Le problème avec le code existant par rapport a mes fichiers:

1- erreur de type 13 : incompatibilité des type :

ThisWorkbook.Sheets("Feuil2").Range("A" & DerLig) = CDate(Mid(ActiveWorkbook.ActiveSheet.Range("A" & j),10, 17))

Sa c'est pour la recuperation de la date

et 2- pour l'adresse IP : certaine sont bien prises et d'autre non ceci est du a sa :

ThisWorkbook.Sheets("Feuil2").Range("B" & DerLig) = Mid(ActiveWorkbook.ActiveSheet.Range("A" & j),179, 11)

Car les Adresse IP ont une taille variable

Ex: 0.0.0.0 et 172.168.30.123

Donc ce code la ne conviens pas pour ce type de d'exercice..

Je vous ai mis 2 fichiers un peu plus haut ce sont cela que j'utilise

Tout le reste du code est bon, seul probleme que je rencontre est avec la fonction Mid

Un test de blindage (avec une valeur par défaut par exemple) serais peut'etre plus pertinent ? A voir

En tout cas merci pour ce que vous avez apportez.

Salut,

Lorsque je lis tes réponses, j’ai parfois l’impression que mes macros ne fonctionnent pas du tout chez toi. Par exemple, lorsque tu m’écris : «Ce que je veux récupérer ce sont les adresses IP dans les fichiers et leurs dates au plus tot et au plus tard», je me dis que tu ne dois pas voir le résultat de mon travail, puisque c’est exactement ce que fait ma macro

nioko a écrit :

Le problème avec le code existant par rapport a mes fichiers:

1- erreur de type 13 : incompatibilité des type :

ThisWorkbook.Sheets("Feuil2").Range("A" & DerLig) =CDate(Mid(ActiveWorkbook.ActiveSheet.Range("A" & j),10, 17))

Sa c'est pour la recuperation de la date

Je ne vois pas ce que tu veux dire par là. Chez moi il n’y a pas de problème avec les deux derniers fichiers que tu m’as fournis. Que se passe-t-il exactement chez toi ???? Est-ce que le code bloque ? Utilises-tu vraiment les mêmes fichiers que ceux que tu m’as fournis ?
nioko a écrit :

et 2- pour l'adresse IP : certaine sont bien prises et d'autre non

Je ne vois absolument pas ce que tu veux dire ; c'est pour le moins imprécis comme explications
nioko a écrit :

ceci est du a sa : ThisWorkbook.Sheets("Feuil2").Range("B" & DerLig) = Mid(ActiveWorkbook.ActiveSheet.Range("A" & j),179, 11)

Oui, ben euh … comme c’est moi qui ai créer ce code, je sais que cette ligne traite de la récupération de l’adresse IP.
Yvouille a écrit :

Pour tes adresses IP, je n’ai rien compris. Peux-tu aussi me donner 2 ou 3 exemples de données incorrectes – sur la base de TES fichiers «Liste_des_machines» - et me dire précisément ce que tu voudrais à la place. Avec tes petits dessins sur les copies d’écran que tu m’as fournies, je ne sais pas ce qui est correct ou non, ce qu’il y a en trop ou ce qui manque.

Où sont les exemples demandés ????
nioko a écrit :

.....seul probleme que je rencontre est avec la fonction Mid

Un test de blindage (avec une valeur par défaut par exemple) serais peut'etre plus pertinent ? A voir.

Cordialement.

Encore une chose :

Si tu prends le dernier fichier que je t’ai fourni « BaseV2 » et que tu lances la macro sur la base des deux derniers fichiers que tu m’as procurés « Liste_des_machines » 1 et 2, tu as bien le résultat suivant à l’écran ?

capture 21 03

Peut- etre le fait que je soi sous exel 2007...

On peut donc voir que l'adresse IP n'est pas bien recuperer.

Sinon tout le reste fonctionne très bien

15basev2.xlsm (22.78 Ko)

Salut,

Je suis bien content de voir que ma macro fonctionne parfaitement chez toi aussi. Tu obtiens exactement le même résultat que moi, à la seule exception prêt que nous avons des paramètres régionaux différents pour les formats des dates (en Suisse on utilise des points pour séparer les jours, mois et années, donc on utilise le format jj.mm.aaaa alors que tu as le format jj/mm/aaaa). Comme tout ça fonctionne bien, je ne comprends alors pas une bonne partie des questions que tu m'as posées

En ce qui concerne le problème des IP, comme tu peux le voir dans la cascade de fenêtres ci-dessous, je t’ai déjà demandé deux fois des exemples précis de ce que tu obtiens avec la macro actuelle et de ce que tu désirerais à la place.

Yvouille a écrit :
Yvouille a écrit :

Pour tes adresses IP, je n’ai rien compris. Peux-tu aussi me donner 2 ou 3 exemples de données incorrectes – sur la base de TES fichiers «Liste_des_machines» - et me dire précisément ce que tu voudrais à la place. Avec tes petits dessins sur les copies d’écran que tu m’as fournies, je ne sais pas ce qui est correct ou non, ce qu’il y a en trop ou ce qui manque.

Où sont les exemples demandés ????
Vas-tu me fournir ces exemples ????

Cordialement.

Pour les exemple je peut en fournir mais difficile d'etre plus clair...

Ce que je veux c'est ca:

W1184032,11/03/13 14:54:29,"Type du SE:Windows XP,Plate-forme de SE:Professional,Version du SE:5.1,Version de Service Pack du SE:Service Pack 3",4.6.0.1694,8.8.0.849.Wrk,5400.1158,10.148.4.18,6968.0000

Mais avec le code actuel j'obtiens ca :

W1184032,11/03/13 14:54:29,"Type du SE:Windows XP,Plate-forme de SE:Professional,Version du SE:5.1,Version de Service Pack du SE:Service Pack 3",4.6.0.1694,8.8.0.849.Wrk,5400.1158,10.148.4.18,6968.0000

Ce que je veux c'est ca:

P0001564,12/03/13 16:34:10,"Type du SE:Windows XP,Plate-forme de SE:Professional,Version du SE:5.1,Version de Service Pack du SE:Service Pack 3",4.6.0.1694,8.8.0.849.Wrk,5400.1158,172.24.0.247,6996.0000

Mais avec le code actuel j'obtiens ca :

P0001564,12/03/13 16:34:10,"Type du SE:Windows XP,Plate-forme de SE:Professional,Version du SE:5.1,Version de Service Pack du SE:Service Pack 3",4.6.0.1694,8.8.0.849.Wrk,5400.1158,172.24.0.247,6996.0000

Re,

Voici un nouvel essai qui me plait bien

Je pense qu'une partie des messages d'erreur que tu as eus venaient du fait que tu avais d'autres fichiers que les fichiers nécessaires dans le dossier dans lequel je t'ai dit de les placer ; ça m'est arrivé la même chose Si tu n'as rien compris à mon explication, fais-le moi savoir et je t'explique ça encore une fois.

Cordialement.

15basev3.xlsm (27.52 Ko)

Oooh très bien !!

C'est exactement sa !

Dernière choses, ensuite j’arrête de vous embêté :p

Tout les fichiers dispose d'une 1ere ligne de ce type :

Nom du système,Dernière communication,Système d'exploitation,Version du produit (Agent),Version du produit (VirusScan Enterprise),Version du moteur (VirusScan Enterprise),Adresse IP,Version des fichiers DAT (VirusScan Enterprise)

Il faudrait pouvoir la passé avant de commencer la boucle

et pour finir pouvez-vous reprendre la mise en page de la 1ere version (Avec le nom des fichiers) ? Car je trouve que c’était une très bonne idée

Voila c'est tout

Encore merci pour tout et très bonne journée

Est-il possible également de commentez votre code ?

Re,

Tu changes assez souvent d’avis quand même

Peux-tu me fournir un fichier exemple sur lequel tu places les titres exacts que tu désires (Aux bonnes lignes et aux bonnes colonnes). Ca évitera que je te prépare quelque chose que tu me demanderas de corriger par la suite.

J’ai bien compris que tous les fichiers « à visiter » comportent une première ligne à ignorer ? (Pourquoi ne pas l’avoir dit de suite, mais d’avoir fourni des fichiers exemples ne correspondant pas à la réalité ?)

Mon code est assez long et le commenter prendrait passablement de temps. Ne peux-tu pas indiquer les passages que tu ne comprends pas ? Ou faut-il le commenter dans les grandes lignes et tu reviens à la charge si nécessaire ?

Cordialement.

Je te fournis les fichiers necessaires :

En PJ

Pour les commentaires, je pense que commenté les grandes lignes serais suffisant

Je pense que c'est tout :p

13base.xlsm (23.02 Ko)

Re-bonjour,

Tes excuses pour avoir changé si souvent d'avis sont toutes acceptées Mais bon, ce n'est pas si grave non plus.

Dans le fichier ci-joint, j'ai mis des commentaires. Ceux qui sont exprès pour toi sont précisés ; les autres je les avais déjà mis en place pour moi.

J'ai découvert qu'avec mon ancien code, certaines IP n'étaient pas reportées. J'ai maintenant corrigé cela et mis en place un système de contrôle que devrait empêcher que d'autres IP soient "oubliées".

Cordialement.

18base-v4.xlsm (27.37 Ko)
Rechercher des sujets similaires à "comparer fichiers determiner lignes"