XL 2016 une fonction Excel capable de trouver de Critère dans texte

Kaka133

XLDnaute Nouveau
Après votre aide sur la dernier sujet merci de me aidez a trouver une fonction Excel capable de trouver de Critère dans texte . merci d'avance
Résulatat Excelll.JPG
 

Pièces jointes

  • Résultat Excel o.xlsx
    11.2 KB · Affichages: 7
Solution
Tout d'abord Bonjour Kaka133,
Par fonction, je vois mal comment faire, donc :
Un essai en PJ avec cette macro :
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é...

sylvanu

XLDnaute Barbatruc
Supporter XLD
Tout d'abord Bonjour Kaka133,
Par fonction, je vois mal comment faire, donc :
Un essai en PJ avec cette macro :
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
J'ai défini une zone Données ( colonnes B: D) et une zone Critères ( colonnes G:I )
 

Pièces jointes

  • Résultat Excel o.xlsm
    20.2 KB · Affichages: 1

Kaka133

XLDnaute Nouveau
Tout d'abord Bonjour Kaka133,
Par fonction, je vois mal comment faire, donc :
Un essai en PJ avec cette macro :
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
J'ai défini une zone Données ( colonnes B: D) et une zone Critères ( colonnes G:I )
MERCI JE VAIS TESTER
 

job75

XLDnaute Barbatruc
Bonjour Kaka133, sylvanu, JHA,

@JHA pour une exécution plus rapide sélectionner H10:I10, entrer cette formule dans la barre de formule :
Code:
=SI(ESTNUM(CHERCHE(L$16;SUBSTITUE(G10;" ";)));M$16:N$16;SI(ESTNUM(CHERCHE(L$17;SUBSTITUE(G10;" ";)));M$17:N$17;""))
et valider en bloc matriciellement par Ctrl+Maj+Entrée.

Edit : non en fait chez moi ce n'est pas plus rapide mais tant pis, ça "sécurise" les formules.

A+
 

Pièces jointes

  • Résultat Excel o(1).xlsx
    12.5 KB · Affichages: 1
Dernière édition:

job75

XLDnaute Barbatruc
Et voici une formule qui fonctionne quel que soit le nombre de lignes de la plage des critères L16:N17 :
Code:
=SIERREUR(INDEX(M$16:N$17;EQUIV(VRAI;ESTNUM(CHERCHE(L$16:L$17;SUBSTITUE(G10;" ";)));0););"")
toujours en matriciel sur la plage H10:I10, fichier (2).
 

Pièces jointes

  • Résultat Excel o(2).xlsx
    12.4 KB · Affichages: 1

Discussions similaires

Réponses
40
Affichages
2 K

Statistiques des forums

Discussions
314 628
Messages
2 111 328
Membres
111 102
dernier inscrit
driss touzi