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.
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.
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
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 :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 absolument pas ce que tu veux dire ; c'est pour le moins imprécis comme explicationsnioko a écrit :et 2- pour l'adresse IP : certaine sont bien prises et d'autre non
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.nioko a écrit :ceci est du a sa : ThisWorkbook.Sheets("Feuil2").Range("B" & DerLig) = Mid(ActiveWorkbook.ActiveSheet.Range("A" & j),179, 11)
Où sont les exemples demandés ????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.
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.
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
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.
Vas-tu me fournir ces exemples ????Yvouille a écrit :Où sont les exemples demandés ????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.
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
Cordialement.
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
Re-bonjour,
Tes excuses pour avoir changé si souvent d'avis sont toutes acceptées
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.