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
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 SubCdlt
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 ?
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 SubSi ce n'est pas ça , reformulez:
Cdlt