Sub Ajoute()
Application.ScreenUpdating = False
TabloDonnées = Range("B3:B" & Range("B65500").End(xlUp).Row) ' Tablo des données
TabloCritères = Range("G3:I" & Range("G65500").End(xlUp).Row) ' Tablo des critères
ReDim TabloResult(UBound(TabloDonnées), 1)
For i = 1 To UBound(TabloDonnées) ' Suppression de tous les espaces
TabloDonnées(i, 1) = Replace(TabloDonnées(i, 1), " ", "")
Next i
For i = 1 To UBound(TabloDonnées)
For j = 1 To UBound(TabloCritères)
If TabloDonnées(i, 1) Like "*" & TabloCritères(j, 1) & "*" Then ' Si critère trouvé...
Sub Ajoute()
Application.ScreenUpdating = False
TabloDonnées = Range("B3:B" & Range("B65500").End(xlUp).Row) ' Tablo des données
TabloCritères = Range("G3:I" & Range("G65500").End(xlUp).Row) ' Tablo des critères
ReDim TabloResult(UBound(TabloDonnées), 1)
For i = 1 To UBound(TabloDonnées) ' Suppression de tous les espaces
TabloDonnées(i, 1) = Replace(TabloDonnées(i, 1), " ", "")
Next i
For i = 1 To UBound(TabloDonnées)
For j = 1 To UBound(TabloCritères)
If TabloDonnées(i, 1) Like "*" & TabloCritères(j, 1) & "*" Then ' Si critère trouvé
TabloResult(i - 1, 0) = TabloCritères(j, 2) ' Remplit Nom et Prénom
TabloResult(i - 1, 1) = TabloCritères(j, 3)
End If
Next j
Next i
[C3].Resize(UBound(TabloResult, 1), 2) = TabloResult ' Restitue résultat
End Sub
MERCI JE VAIS TESTERTout d'abord Bonjour Kaka133,
Par fonction, je vois mal comment faire, donc :
Un essai en PJ avec cette macro :
J'ai défini une zone Données ( colonnes B: D) et une zone Critères ( colonnes G:I )VB:Sub Ajoute() Application.ScreenUpdating = False TabloDonnées = Range("B3:B" & Range("B65500").End(xlUp).Row) ' Tablo des données TabloCritères = Range("G3:I" & Range("G65500").End(xlUp).Row) ' Tablo des critères ReDim TabloResult(UBound(TabloDonnées), 1) For i = 1 To UBound(TabloDonnées) ' Suppression de tous les espaces TabloDonnées(i, 1) = Replace(TabloDonnées(i, 1), " ", "") Next i For i = 1 To UBound(TabloDonnées) For j = 1 To UBound(TabloCritères) If TabloDonnées(i, 1) Like "*" & TabloCritères(j, 1) & "*" Then ' Si critère trouvé TabloResult(i - 1, 0) = TabloCritères(j, 2) ' Remplit Nom et Prénom TabloResult(i - 1, 1) = TabloCritères(j, 3) End If Next j Next i [C3].Resize(UBound(TabloResult, 1), 2) = TabloResult ' Restitue résultat End Sub
=SI(ESTNUM(CHERCHE(L$16;SUBSTITUE(G10;" ";)));M$16:N$16;SI(ESTNUM(CHERCHE(L$17;SUBSTITUE(G10;" ";)));M$17:N$17;""))
=SIERREUR(INDEX(M$16:N$17;EQUIV(VRAI;ESTNUM(CHERCHE(L$16:L$17;SUBSTITUE(G10;" ";)));0););"")
INDEX(plage;2;)