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

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

  • 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
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
Réactions: JHA

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…