Recherche approximative

Bonjour à toutes et tous,

Ce matin j'ai reçu de l'aide pour trouver la manière de faire la recherche précise d'un mot dans une plage de cellule ....

Et bien finalement c'est complètement l'inverse que je dois mettre en place 😒😒😒

Du coup j'ai réussi à écrire le code suivant qui fonctionne presque parfaitement. le bémol c'est que Excel va chercher la correspondance exact à la recherche puisque j'ai écrit :

If Cells(i, "N") = Cells(2, "P") Then

Et mois je voudrais que ce soit approximatif, autrement dit, si je recherche le mot "Table", il me sortira toutes les cellules contenant "Table" mais également celles qui contiennent "Table marron" ...

Ci-joint le code complet

Sub Recherche()
Dim Var As String, valeur As String
Dim i As Integer

    With ActiveSheet
        For i = 6 To .Range("N" & Rows.Count).End(xlUp).Row

            If Cells(i, "N") = Cells(2, "P") Then

                If valeur = "" Then
                    valeur = "''" & Cells(2, "P") & "''" & " trouvé sur la ligne : " & vbCrLf & vbCrLf & i
            Else:
                    valeur = valeur & vbCrLf & i

                End If
            End If
        Next i
    End With

If valeur <> vbNullString Then MsgBox valeur, , "Résultat de la recherche"

If valeur = vbNullString Then

MsgBox ("''" & Cells(2, "P") & "''" & " introuvable ou incorrect"), , "Résultat de la recherche"
End If

End Sub

Merci d'avance pour le coup de main ;)

En faisant des recherches et en essaynt de me débrouiller avec l'enregistreur de macro, j'ai cru comprendre que pour cela il fallait utiliser le texte :

LookAt:=xlPart

Mais je ne sais pas du tout s'il est possible de l'intégrer dans le code tel que je l'ai écrit et si oui, où ? 🧐

En faisant des recherches et en essayant de me débrouiller avec l'enregistreur de macro, j'ai cru comprendre que pour cela il fallait utiliser le texte :

LookAt:=xlPart

Mais je ne sais pas du tout s'il est possible de l'intégrer dans le code tel que je l'ai écrit et si oui, où ? 🧐

Bonjour,

Je pense qu'il faut utilise l'opérateur Like:

If Cells(i, "N") = Cells(2, "P") Then

deviendrait:

If Cells(i, "N") Like "*" & Cells(2, "P") & "*" Then

les étoiles servant à dire qu'on peut avoir n'importe quoi avant, n'importe quoi après, ça revient donc à dire "contient".

Bonjour,

J'ai essayé mais malheureusement ça ne marche pas. Au contraire, même quand la condition est vrai, il ne reconnait pas le mot recherché.

Tu as un exemple où ça ne marche pas?

Normalement

If Cells(i, "N") Like "*" & Cells(2, "P") & "*" Then

devrait fonctionner... attention, même en utilisant Like, le texte "Table" est différent de "table" car il y a une majuscule.

Un fichier serait top.

Autant pour moi !!!!!!!

Je ne sais pas pourquoi mais en copiant votre code j'ai omis "Like" .... forcément ....😖😖😖😖

Donc c'est parfaitement fonctionnel. Merci à vous

A + ;)

J'avais également oublié de changer le "=" en Like lors de mon premier post, je l'ai modifié quasiment directement après mais vous avez peut-être eu la version sans, content que le problème soit si simple qu'un oubli d'un côté ou de l'autre

Ah ben je saurais pas dire 😂

En tout cas merci pour votre aide ! Bonne continuation :)

Rechercher des sujets similaires à "recherche approximative"