[Débutante]Comparaison entre résultats de feuille excel

lilo415

XLDnaute Nouveau
Bonjour,

J'ai effectué des extractions de tables différentes via des requêtes SQL. J'ai stocké les résultats sous fichiers Excel.

J'ai un voir deux champs communs dans les tables entre mes résultats de requête. Je souhaiterais les comparer entre eux pour savoir, si l'information se trouve sur les deux feuilles Excel et pouvoir les analyses ensuite via les applications. ( je souhaiterais si possibles ne pas effacer de données pendant la comparaison pour pouvoir garder les autres champs)

Pouvez-vous m'expliquer, comment je peux procéder pour faire ces comparaisons ? (il s'agit de gros volume de données 65536 lignes par fichiers Excel et j'en ai plusieurs)
Je suppose qu'il faut faire une macro, j'ai testé sous un petit nombre, mais Excel plante.
J'aurais bien testé un recherchev (mais je ne maitrise pas cette fonction )

Merci d'avance de votre aide.

Lilo
 

mécano41

XLDnaute Accro
Re : [Débutante]Comparaison entre résultats de feuille excel

..Sinon une dernière question, là nous comparons ligne par ligne après concaténation . Est-il possible de comparer une ligne de la colonne A et la colonne B du classeur 2, sur l'ensemble des données du classeur 3 ? ...je souhaiterais m'assurer qu'une donnée du classeur 2, ne se trouve pas dans le classeur 3 sur la ligne x.


Tu veux vérifier si par ex. A124 ou B124 du CL2 ne se retrouvent pas ailleurs qu'en A124 ou B124 du CL3, par ex dans CL3 A258 peut être trouvé en A258 du classeur 3 mais également en A567 de ce même classeur? Idem pour B258 de CL2 que l'on retrouverait en B4562 de CL3 par ex.? Si ce n'est pas ainsi, mets un petit bout de fichier exemple avec des données bidons...

Cordialement
 

mécano41

XLDnaute Accro
Re : [Débutante]Comparaison entre résultats de feuille excel

Voici les fichiers. Dans le classeur1, il y a deux boutons :

- le premier bouton lance la nouvelle vérif. dont les résultats sont dans les colonnes A, B et C de la deuxième feuille. Les colonnes A et B donnent le N° de la ligne et de la colonne du CL2 ; la colonne C donne le N° de la ligne du CL3 (pour la même colonne évidemment)
- le second bouton lance la comparaison dont les résultats sont en colonnes E et F

Dans le CL3, j'ai colorié les cellules différentes de celles du CL2 et qui correspondent au tableau de sortie pour les données que j'ai mises.

Je ne sais pas du tout quelle sera la vitesse d'exécution pour des colonnes chargées...Si c'est trop long, il faudra voir avec quelqu'un qui maîtrise ce type de sélection par des formules afin de voir si c'est plus rapide...

Cordialement
 

Pièces jointes

  • Classeur1.zip
    39.2 KB · Affichages: 24
  • Classeur1.zip
    39.2 KB · Affichages: 22
  • Classeur1.zip
    39.2 KB · Affichages: 20

lilo415

XLDnaute Nouveau
Re : [Débutante]Comparaison entre résultats de feuille excel

Bonjour mécano41,

Merci pour la mise à jour de ton fichier.
Il fonctionne bien avec tes données et quand je modifie deux ou trois données. En voulant tester avec mes données, j'ai modifié 5 lignes par les miennes et ça fonctionne. ( Verif1 et Verif2": me donnes des résultats)
Quand je souhaites en modifier plus et que je lance "Verif1", j'obtiens une erreur par contre si je lance "Verif2" ça fonctionne.

Voici la ligne où ça bloque :
Worksheets(2).Range("A2").Resize(UBound(T3, 2) - 1, 3).Name = "Resultats1" ' Nomme la nouvelle plage Resultats1

L'étape précente qui est :
Range("Resultats1").ClearContents ' Efface la plage Resultats précédente (feuil2 classeur principal)
Efface bien les données mais après il ne le remplit pas, j'ai testé en remettant des infos bidon mais ça bloque toujours.

Est-ce que le problème vient de mes infos ? faut-il fermer le classeur à chaque modification ?
J'espère avoir été clair dans mes explications, n'hésite pas à me poser des questions.

Merci d'avance.
Lilo
 

mécano41

XLDnaute Accro
Re : [Débutante]Comparaison entre résultats de feuille excel

Bonjour,

Il y a probablement des dispositions que je ne vois pas...il faudrait me faire passer un fichier avec un exemple de tes données, ou quelque chose de ressemblant si c'est confidentiel. il faudrait un cas qui ne fonctionne pas chez toi. Tu mets les données des deux classeurs CL2 et CL3 dans une même feuille, sur le nombre de lignes que tu veux (pas trop - pitié pour le forum!) et je recopierai...

Cordialement
 

lilo415

XLDnaute Nouveau
Re : [Débutante]Comparaison entre résultats de feuille excel

Après plusieurs manipulations, cela semble fonctionner. J'ai plus le message d'erreur :)

J'essaie au fur et à mesure avec plusieurs lignes de données.

Merci de ton aide.
( Ci-joint un exemple au cas ou je te pose d'autres questions)
 

mécano41

XLDnaute Accro
Re : [Débutante]Comparaison entre résultats de feuille excel

Il doit y avoir un problème avec tes fichiers car la première fois l'ouverture m'a été refusée pour manque de ressources alors que tes fichiers ne contiennent presque rien! Après fermeture puis réouverture EXCEL cela s'est ouvert mais les deux boutons ne sont plus des boutons mais de simples formes...

J'ai réinitialisé mon ordi. : pareil.....

Si quelqu'un d'autre pouvait essayer de les faire fonctionner cela serait bien...

EDIT : en revanche, j'ai lancé les codes directement et cela semble fonctionner

Cordialement
 
Dernière édition:

lilo415

XLDnaute Nouveau
Re : [Débutante]Comparaison entre résultats de feuille excel

Bonjour,

Le classeur fonctionne bien, je n'ai plus d'erreur.
J'aurais une autre demande . Maintenant que je récupéré les résultats dans le classeur 1 onglet 2. ( Parfois j'obtient 25000 résultat) Serait-il possible de rajouter une macro ou un autre système qui me permettrait de faire la différence si les résultats sont ok ou ko dans le classeur 2 ou le classeur 3 ? Un genre de filtre afin que je puisse analyser rapidement ...

Je ne sais pas si j'ai été bien clair . Si besoin j'expliquerai d'avantage .

Merci d'avance

Lilo
 

mécano41

XLDnaute Accro
Re : [Débutante]Comparaison entre résultats de feuille excel

Bonjour,

Veux-tu dire : quelque chose qui ne laisserait visibles, dans CL2 et CL3, que les lignes figurant dans les résultats de CL1?

Si oui :

- après le contrôle d'unicité seulement (c'est-à-dire les lignes de la colonne A des résultats pour CL2 et celles de la colonne C des résultats pour CL3)?
- après la comparaison seulement (c'est-à-dire les lignes de la colonne E des résultats pour CL2 et CL3)?
- après l'un ou l'autre mais en indiquant toutes les lignes affectées par l'un ou l'autre des deux contrôles?

Cordialement
 

mécano41

XLDnaute Accro
Re : [Débutante]Comparaison entre résultats de feuille excel

Voici une version avec :

- indication dans chaque classeur des lignes fautives après contrôle d'unicité et affichage de ces lignes par filtrage

- indication, dans chaque classeur, des lignes différentes après comparaison et affichage de ces lignes (identiques dans chaque fichier) par filtrage

- dans les deux cas, la suppression/remise en place du filtrage est automatique

- dans chaque classeur, un bouton permet de supprimer manuellement le filtrage pour afficher l'intégralité des données (mais n'enlève pas les filtres)

- des titres de colonnes ont été ajoutés dans les deux classeurs afin d'avoir un fonctionnement correct du filtrage

Nota : je suis sous EXCEL 2010. Si tu as une version antérieure à 2007, il est possible que le filtrage ne fonctionne pas car les codes étaient différents...

Les fichiers CL2 et CL3 sont maintenant en .xlsm (boutons)

Cordialement
 

Pièces jointes

  • Classeur1.zip
    60.6 KB · Affichages: 21
  • Classeur1.zip
    60.6 KB · Affichages: 24
  • Classeur1.zip
    60.6 KB · Affichages: 21

lilo415

XLDnaute Nouveau
Re : [Débutante]Comparaison entre résultats de feuille excel

Merci pour la Mise à jour du fichier.

Par contre, j'ai une erreur d'exécution. Alors je pars de ton fichier
Au niveau de l'unicité :
"
ActiveSheet.Range("$A$1:$D$65536").AutoFilter Field:=4
"
je bloque à ce niveau. Si je met en commentaire, je reste bloquer au niveau de la sortie des résultats :

"
Worksheets(1).Range("C2").Resize(NbLig, 1).Value = WorksheetFunction.Transpose(TC1)
"

Idem pour la partie comparaison.
Pour info, j'ai une version 2003. J'ai téléchargé un pack de compatibilité 2007-2003 mais cela ne change rien.

Aurais-tu une idée?

Merci d'avance

Lilo
 

Discussions similaires

Statistiques des forums

Discussions
314 485
Messages
2 110 101
Membres
110 663
dernier inscrit
ToussaintBug