Lister les différences entre 3 tableaux de valeurs

Bonjour,

J'ai 3 tableaux de la forme :

NomPrénomÂge Adresse

Je souhaiterais afficher la liste des différences entre chaque tableau un à un, en sachant que deux lignes sont identiques uniquement si les 4 valeurs de la ligne sont les mêmes dans les 2 tableaux.

Je souhaiterais également indiquer si la différence entre 2 lignes concerne 1, 2, 3 ou 4 des valeurs de la ligne.

Je suis en train de chercher des solutions, mais quelle solution serait pour vous la plus indiquée ?

Merci à vous,

Bonjour

Tu devrais joindre ton fichier en donnant un exemple du résultat pour voir comment tu veux le présenter
Bye !

Merci pour cette réponse. Mon idée de rendu n'est pas arrêtée mais voilà ce que je pensais faire :

J'ai 1 tableau par onglet (onglet 1 T1, onglet 2 T2, onglet 3 T3).

Je souhaite faire un onglet par comparatif (onglet 4 comparatif T1-T2, onglet 5 comparatif T1-T3....).

Et dans chaque onglet comparatif, faire un tableau

NomPrénomÂge Adresse

En sachant qu'une ligne apparait dans ce tableau que si au moins une des valeurs est différente de la valeur présente dans la ligne de l'autre tableau.

Dans le cas où plusieurs valeurs sont différentes, peut être mettre en couleur les valeurs différentes.

C'est une idée, si tu as des idées pour optimiser la présentation, je suis aussi preneur, merci.

Bonjour 2tuheurs, si j'ai bien saisi ton problème tu as 3 feuilles excel dans lesquels tu retrouves la même forme de tableau, et tu aimerais dans une feuille 4 faire un comparatif entre la feuille 1 et la feuille 2 pour mettre en évidence les nouvelles entrées qui sont apparu dans le tableau de la feuille 2 par rapport à celui de la feuille 1. De même sur une 5ème feuille mais en comparant les feuilles 2 et 3.

En revanche je n'ai pas compris si dans tes feuilles de synthèses 4 et 5 tu souhaitais ne faire apparaître uniquement les différences ou faire apparaître l'ensemble des données avec une couleur différente pour les nouvelles entrées ?

pour simplifier les choses, tu peux déjà ajouter une colonne dans tous les tableaux (qui pourra être masquée), il s'agit de la colonne Test ci-dessous.

image

Voici le code dans le cas où dans la feuille de synthèse 4 tu veux récupérer uniquement les nouvelles valeurs entrées entre le tableau 1 et 2, en prenant 2 comme étant le plus récent :

sub hyp1 ()

Dim i as integer, j as integer, valeurTesté as string

i= 3 '''3 étant le numéro de la ligne de la première valeur du tableau 2, à ajuter.

j= 3 '''3 étant le numéro de la ligne de la première valeur du tableau 1, à ajuter.

k= 3 '''3 étant le numéro de la ligne de la première valeur du tableau 4, à ajuter.

While not (IsEmpty(sheets("feuil2").cells(i,5))) '''5 étant le numéro de la colonne où se trouve Test, à ajuter.

valeurTesté = sheets("feuil2").cells(i,5)

While not (IsEmpty(sheets("feuil1").cells(j,5)))

If sheets("feuil1").cells(j,5) = valeurTesté Then

sheets("feuil4").cells(k,1)=sheets("feuil2").cells(j,1) 'on remplit la colonne Nom

sheets("feuil4").cells(k,2)=sheets("feuil2").cells(j,2) 'on remplit la colonne Prénom

sheets("feuil4").cells(k,3)=sheets("feuil2").cells(j,3) 'on remplit la colonne Age

sheets("feuil4").cells(k,4)=sheets("feuil2").cells(j,4) 'on remplit la colonne Adresse

k = k + 1

End if

j = j + 1

Wend

i = i + 1

Wend

End sub

Cordialement,

Kenact

Bonjour,

Pour ta question : je souhaite faire apparaître uniquement les différences dans les feuilles de synthèse. A savoir qu'une ligne est "en différence", à partir du moment où pour un couple (Nom, Prénom), soit uniquement 'Âge' est différent, soit uniquement 'Adresse', soit 'Âge' et 'Adresse sont différents.
Je ne sais pas si mon explication est claire ?

Je ne suis pas très à l'aise avec le développement Excel, il me semblait que mon cas était faisable avec les formules Excel (en particulier RECHERCHEV).

Qu'en penses-tu ?

Merci

Bonjour @2tuheurs, c'est faisable en formule mais pas tout a fait de la même manière.

Pour simplifier les écritures de toutes les formules, je pars du principe que l'on travaille sur la première ligne de chaque tableau (par exemple : ligne 3)

1.Dans un premier temps sur chaque tableau tu crée une nouvelle colonne (comme indiqué précédemment). La formule c'est =A3&B3&C3&D3. Et tu tire cette formule à tous les éléments de tes tableaux.

Remarque : Si de nouvelles entrées sont faite dans tes tableau il faudra obligatoirement tiré les formules. si tu veux automatiser cela tu peux créer tes tableaux avec l'utilitaire Excel de création de tableau, disponible en allant dans le ruban puis Insertion\Tableau.

2. Dans ton tableau N+1 (où est N est ton tableau de référence, donc si tu veux analyser le tableau 1 (N), ça sera par rapport au tableau 2 (N+1), etc...) tu crée une 6ème colonne qui servira à écrire la formule qui cherchera dans le tableau N l'existence de l'entrée de la colonne 5 en N+1 (la colonne 5 c'est là où on a écrit =A3&B3&C3&D3).

Formule à écrire dans la colonne 6 (toujours en ligne 3, il faudra évidemment la tirer à tous les éléments du tableau) : =Si(EstErreur(equiv(E3;'Feuil1'!E:E,0));1;0) où Feuil1 correspond à la feuille N

Dans la colonne 6, la formule renverra :

1 si la donnée n'existe pas dans le tableau N

0 si la valeur existe.

3. Il ne te reste plus qu'à faire un filtre sur ton tableau N+1 en ne filtrant que les 1 dans la colonne 6, puis d'éventuellement copier coller le tableau exclu des 0 dans une autre feuille.

Kenact

Bonjour et merci beaucoup pour ta réponse :-) Cela fonctionne bien :-)

Rechercher des sujets similaires à "lister differences entre tableaux valeurs"