Comparer

Bonjour,

Ci-joint un fichier excel

En bleu et jaune deux tableaux a comparer

En vert le résultat attendu

Si pour les désignations identiques, les montant sont égaux alors vrai sinon, faux!

Merci

Bonjour,

un exemple

avec Vrai quand montants egaux

faux quand montants inégaux

et #NA quand pas de correspondance.

Bonjour Pierro, bonjour le forum,

Une proposition VBA avec le code ci-dessous :

Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim T1 As Variant 'déclare la variable T1 (Tableau 1)
Dim T2 As Variant 'déclare la variable T2 (Tableau 2)
Dim TR() As Variant 'déclare la variable TR (Tableau des Résultats)
Dim TEST As Boolean 'déclare la variable TEST
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Integer 'déclare la variable J (incrément)
Dim K As Integer 'déclare la variable K (incrément)

Set O = Worksheets("Feuil1") 'définit l'onglet O
O.Range("H2").CurrentRegion.Offset(1, 0).ClearContents 'efface d'éventuelles anciennes données
T1 = O.Range("B2").CurrentRegion 'définit le tableau T1
T2 = O.Range("E2").CurrentRegion 'définit le tableau T2
ReDim TR(1 To UBound(T1, 1), 1 To 2) 'redimensionne le tableau de résultats TR (autant de ligne que T1, 2 colonnes)
K = 1 'initialise la variable K
For I = 2 To UBound(T1, 1) 'boucle 1 : sur toutes les lignes I du tableau T1 (en partant de la seconde)
    TEST = False 'initialise la variable TEST
    For J = 2 To UBound(T2, 1) 'boucle 2 : sur toutes les lignes J du tableau T2 (en partant de la seconde)
        If T1(I, 1) = T2(J, 1) Then 'condition : si la donnée ligne I colone 1 de T1 est égale à la donnée ligne J colonne 1 de T2
            TEST = True 'redéfinit la variable TEST
            TR(K, 1) = T1(I, 1) 'récupère dans le ligne K colonne 1 de TL la désignation en ligne I du tableau 1
            TR(K, 2) = IIf(T1(I, 2) = T2(J, 2), "VRAI", "FAUX") 'renvoie dans le ligne K colonne 2 de TL la mention "VRAI" ou "FAUX" en fonction des données en colonne 2 des tableaux T1 et T2
            K = K + 1 'incrémente K
            Exit For 'sort de la boucle 2
        End If 'fin de la condition
    Next J 'prochaine ligne de la boucle 2
    'si TEST est [FAUX] récupère dans le ligne K colonne 1 de TL la désignation du tableau 1, renvoie "FAUX" dans la ligne L colonne 2 de TL, incrémente K
    If TEST = False Then TR(K, 1) = T1(I, 1): TR(K, 2) = "FAUX": K = K + 1
Next I 'prochaine ligne de la boucle 1
O.Range("H3").Resize(UBound(T1, 1), 2).Value = TR 'renvoie le tableau TL dans la cellule H3 redimensionnée
End Sub

[Édition]

Bonjour Xmenpl, nos posts se sont croisés...

Bonjour Xmenpl, nos posts se sont croisés...

Bonjour et Merci à vous deux,

SI(RECHERCHEV(H3;jaune;2;FAUX)

Je ne comprends pas pourquoi il identifie jaune au tableau????

Peux tu m'éclairer stp?

Bonjour et Merci à vous deux,

SI(RECHERCHEV(H3;jaune;2;FAUX)

Je ne comprends pas pourquoi il identifie jaune au tableau????

Peux tu m'éclairer stp?

c'est parce que j'ai donné un nom de plage ("jaune") à la selection.

dans une cellule excel tapes =jaune ... et tu vas voir a quoi correspond la selection

Bonjour,

Onglet "Formule" zone "Noms définis" bouton "Gestionnaire de noms" et tu comprendras

Rebonjour,

Super,

Merci à tous de partager!!!!

Rechercher des sujets similaires à "comparer"