Formule Excel pour match avec SI ou autre / VBA

Bonjour,

Je vous joins le fichier exemple ci-après. J'aimerais avoir une formule de préférence qui permette d'afficher si le même radical a bien été trouvé dans les 2 feuilles (tiers M et tiers M-1 : Si oui, on retourne le résultat dans la colonne D : Si ça matche, retourne "Match". Sinon, on retourne "Pas Match" si on retrouve pas le même radical dans les deux feuilles.

Bien évidemment, le tri est aléatoire et pas forcément dans l'ordre (il ne faudrait pas le trier). Par conséquent, il faut que la formule vérifie toute la colonne A des deux feuilles pour savoir si ça matche ou pas. Je voudrais que cela s'affiche dans la feuille Tiers M et si possible dans la colonne D par exemple. Il faut que cela soit visible.

Ensuite, à l'aide de cette formule, j'aimerais la générer pour toute la colonne D de la feuille Tiers M (environ 600 cellules). Devrais-je faire par la suite un VBA ?

Merci beaucoup !

David

14tiers-exemple.xlsx (13.33 Ko)

Bonjour,

Les radicaux sont-ils uniques? si c'est le cas alors formules en D2 et à tirer vers le bas de la deuille "tiersM"

=SIERREUR(SI(EQUIV($A2;'tiersM-1'!A:A;0)>0;"Match";"");"Pas Match")

Cdlt

Est-il possible d'appliquer cette formule avec un programme VBA du coup ?

Merci beaucoup.

Bonjour,

Est-il possible d'appliquer cette formule avec un programme VBA du coup ?

Oui bien sûr, mais quel est l'intérêt, alors qu'une simple recopie de la cellule fait le travail en une fraction de seconde,(en se positionnant sur le coin en bas à droite de la cellule, puis en faisant un double-clic)

Sub Appliquer_Formule()
    Application.ScreenUpdating = False
    DerLig = Range("A" & Rows.Count).End(xlUp).Row
    Range("D2:D" & DerLig).FormulaR1C1 = "=IFERROR(IF(MATCH(RC1,'tiersM-1'!C[-3],0)>0,""Match"",""""),""Pas Match"")"

    'on remplace les résultats obtenus par formule par leurs valeurs (facultatif)
    Range("D2:D" & DerLig).Value = Range("D2:D" & DerLig).Value
End Sub

Cdlt

Merci ! Si je veux que cela matche la colonne D (Tiers M et Tiers M-1) du coup et le résultat dans la colonne J, comment faire ?

Bonjour,

Pas sûr d'avoir bien compris, vous voulez dire "en français", que vous vouliez rechercher la valeur de la colonne D de la feuille "tiersM" dans la feuille "tiersM-1" et inversement et afficher les résultats dans la colonne J, est-ce bien cela?

si c'est le cas , alors:
Important:
Dans un premier temps, renommez la feuille "tiersM-1" par "tiersM_1", (remplacement du signe - par _)
Option Explicit
Option Compare Text

Sub Appliquer_Formule()
    Dim f1 As Worksheet, f2 As Worksheet
    Dim DerLig_f1 As Long, DerLig_f2 As Long
    Application.ScreenUpdating = False
    Set f1 = Sheets("tiersM_1")
    Set f2 = Sheets("tiersM")

    'recherche des valeurs de la fauille tiersM-1 dans la feuille tiersM
    DerLig_f1 = f1.Range("D" & Rows.Count).End(xlUp).Row
    f1.Range("J2:J" & DerLig_f1).FormulaR1C1 = "=IFERROR(IF(MATCH(RC4," & f2.Name & "!C4,0)>0,""Match"",""""),""Pas Match"")"
    'on remplace les résultats obtenus par formule par leurs valeurs (facultatif)
    f1.Range("J2:J" & DerLig_f1).Value = f1.Range("J2:J" & DerLig_f1).Value

    'recherche des valeurs de la fauille tiersM dans la feuille tiersM-1
    DerLig_f2 = f2.Range("D" & Rows.Count).End(xlUp).Row
    f2.Range("J2:J" & DerLig_f2).FormulaR1C1 = "=IFERROR(IF(MATCH(RC4," & f1.Name & "!C4,0)>0,""Match"",""""),""Pas Match"")"
    'on remplace les résultats obtenus par formule par leurs valeurs (facultatif)
    f2.Range("J2:J" & DerLig_f2).Value = f2.Range("J2:J" & DerLig_f2).Value

    Set f1 = Nothing
    Set f2 = Nothing
End Sub

Si ce n'est pas ça , reformulez:

Cdlt
Rechercher des sujets similaires à "formule match vba"