Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
 

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

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

Réactions: JHA
- 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
4
Affichages
142
Réponses
10
Affichages
149
Réponses
5
Affichages
285
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…