XL 2019 Recherchev imbriqué (ou bien recherche et "ou" ou "et"...)

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

monsieurmarcadet

XLDnaute Junior
Bonjour chers amis,

Essayons d'être clair...

J'ai un fichier avec une liste de personnes avec, entre autre, 3 infos : Nom, Prénom et Date de Naissance. J'ai un autre fichier avec aussi des personnes, ces mêmes infos, mais des erreurs dans l'une de ces 3 infos.

Le but c'est de retrouver les lignes des personnes où il y a deux infos identique et une 1 infos fausse parmis les 3 colonnes. Par exemple sur mon fichier test, Jean Durant né le 03/06/1973 à gauche est né le 03/06/1976 à droite (j'ai tout mis dans un seul fichier pour la compréhension du fichier test). En bas, le résultat de la recherche, c'est à dire surligner les cellules différente.

Je pense que la solution est une espèce de recherchev imbriqué, mais je bloque.

S'il vous manque des infos, dites-le moi, j'ai l'impression de pas être clair...

Merci d'avance !!
 

Pièces jointes

Bonjour @monsieurmarcadet, @JHA 🙂, @R@chid 🙂,

Un essai par VBA. Cliquez sur le bouton Hop!
Le résultat se trouve sur la feuille "Result".
le code de la macro se trouve dans le module Module1.

Le critère (exactement deux valeurs identiques) ne permet pas d'aboutir forcément à un résultat juste: 😕

Si dans le premier tableau on a :

DurantJosiane
03/06/1973
DurantJean
03/06/1973
et si ces deux lignes sont présentes aussi dans le second tableau alors:
  • sur la ligne de Durant Josiane, le prénom sera surligné (résultat de la comparaison de Josiane avec Jean)
  • ET sur la ligne de Durant Jean, le prénom sera aussi surligné (résultat de la comparaison de Jean avec Josiane)
donc avec les jumeaux, triplets, quadruplets, etc, ça ne marche pas 😛. D'autres cas aboutissent aux mêmes anomalies.
 

Pièces jointes

Dernière édition:
mapomme, ta macro marche impec je crois bien ! A vérifier avec de vrais données, mais ça m'a l'air top.

Et pour répondre à ta question, le 2e tableau, celui de droite, ne peut pas avoir des lignes exactement identiques au tableau de gauche, donc à priori, le coup des jumeaux ne devrait pas arriver.

J'aurais tout de même quelques ajustement à te demander (parce que j'ai beau lire ton VBA.... je suis paumé...) : Serait-ce possible de ne pas afficher les lignes qui existent à gauche mais pas à droite ? (aucune cellules coloriés).

De plus, je ne comprends pas la différence de couleur ?

En tout cas merci ! A JHA aussi merci, mais je n'ai pas trouvé la même facilité de fonctionnement qu'ici.
 

Pièces jointes

Bonjour mapomme !

C'est absolument nickel. Mais j'avais oublié un point important (je suis chiant hein...). Toutes les lignes de droites doivent apparaître sur la partie résultat : quelles aient des différences (donc colorés) ou non. J'arrive pas à savoir si ça complexifie beaucoup le truc. Si c'est le cas, tant pis, c'est déjà énorme ce que tu as fait !

Merci de ton aide !
 
Bonjour @monsieurmarcadet,

Toutes les lignes de droites doivent apparaître sur la partie résultat : quelles aient des différences (donc colorés) ou non. J'arrive pas à savoir si ça complexifie beaucoup le truc.

Si j'ai bien compris, ça ne complique pas le code (juste 3 petites lignes à ajouter)
 

Pièces jointes

Re,

Une dernière version plus élaborée.

Quand, sur la feuille "Result", on sélectionne une cellule, on affiche dans les colonnes N à O la ou les lignes de droite concernées par les différences.

Pour cela, on a rajouté une procédure dans module1 et 5 lignes de code dans le module de la feuille "Result".
 

Pièces jointes

Bonjour mapomme !

La dernière version est très sympa mais elle ne correspond pas tout à fait... Argl, j'ai l'impression d'être chiant... J'essaierais bien de peaufiner le VBA, mais... outch...

En fait, la sélection de cellule qui n'affiche que la ligne correspondante, c'est pas mal, mais il me faudrait toute la liste et surtout avec aussi les cellules fautives colorées, comme sur la partie de gauche. En fait l'idéal serait d'avoir 2 tableaux en miroir : A gauche, uniquement les lignes avec des erreurs (et colorés), à droite, toutes les lignes, avec les erreurs colorés. Et dans les tableaux, les mêmes colonnes : Nom, Prénom et Date de naissance.

A ce propos, mon fichier original a beaucoup plus de colonnes, pourrais-tu m'indiquer précisement à quel endroit du VBA je peux ajuster ça ? Autre question, est-ce que le fichier supporte le copier coller ? Et puis-je rajouter autant de ligne que je le souhaite ?

Un grand merci encore !
 
Bonjour @monsieurmarcadet,
En fait, la sélection de cellule qui n'affiche que la ligne correspondante, c'est pas mal, mais il me faudrait toute la liste et surtout avec aussi les cellules fautives colorées, comme sur la partie de gauche. En fait l'idéal serait d'avoir 2 tableaux en miroir : A gauche, uniquement les lignes avec des erreurs (et colorés), à droite, toutes les lignes, avec les erreurs colorés. Et dans les tableaux, les mêmes colonnes : Nom, Prénom et Date de naissance.
Voir la version ci-jointe (si j'ai bien compris)

A ce propos, mon fichier original a beaucoup plus de colonnes, pourrais-tu m'indiquer précisement à quel endroit du VBA je peux ajuster ça ?
Compliqué de répondre.
Pour le tableau de gauche changer la ligne ci-dessous en remplaçant k par la dernière colonne du tableau de gauche
VB:
t1 = .Range("a1:k" & i) ' t1 => tableau de la plage des valeurs des données à gauche


Pour le tableau de droite changer les lignes ci-dessous en remplaçant n par la première colonne du tableau de droite
et p par la dernière colonne du tableau de droite ( normalement pour le tableau de droite, 3 colonnes sont suffisantes)
VB:
   i = .Cells(Rows.Count, "n").End(xlUp).Row    ' dernière ligne de la colonne N
   t2 = .Range("n1:p" & i) ' t2=> tableau de la plage des valeurs des données à droite


Autre question, est-ce que le fichier supporte le copier coller ?
Normalement OUI.


Et puis-je rajouter autant de ligne que je le souhaite ?
Normalement OUI.

nota: il faut bien sûr que les colonnes significatives restent aux même emplacements (ie colonne).
  • Pour le tableau de gauche : colonnes C, D et K
  • Pour le tableau de droite: on utilise les trois premières colonnes
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
2 K
Réponses
3
Affichages
1 K
Retour