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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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é...
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

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
 
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

Dernière édition:
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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
217
Retour