Recherche par mot incomplet

Bonjour,

je fais une rechercheV sur un mot multiple, ex: "jean marc"

quand je tape "jean marc" pas de probleme il me le trouve

je voudrais quand je tappe "jean" soit qu'il m'affiche les données relative à "jean marc" ou quand j'ai plusieurs "jean" (jean marc, jean paul,...) qu'il me fasse la proposition des differents "jean"

comment faire ?

Bonjour.

Pour trouver qu'une partie du mot, tu inscrits "Jean" et tu rajoute une astérisque. Ce qui donne:

"Jean*"

Reste à mettre le reste de ta formule.

merci de la reponse, ça marche

mais dans le cas ou j'ai plusieurs "jean" avec "*" il ne me prend que le premier, comment je peux avoir les autres ?

Re.

Je ne sais pas comment est organisé ton fichier.

Que fait ta fonction Recherche?

Comment les données doivent être représentées.

Bref, envoie ton fichier sans quoi, difficile de te répondre. (Pas sur que je puisse. Ca sent la matricielle que je ne maitrise pas bien.)

Bonjour,

Ci dessous le code VBA d'une fonction qui renvoie sous forme matricielle, l'ensemble des valeurs contenant une chaine de caractère.

Elle renvoie sous forme de n lignes ou n colonnes suivant la sélection que tu a fait.

(rappel: faire Shift + Ctrl + Enter après avoir saisi la formule et sélection l'ensemble des cellules de destination)

utilisation: =RechercheMulti(range où s'effectue la recherche; chainecherchée)

avec chainecherchée sans caratère *

exemple: =recherchemulti(A1:A100;"toto") -> dans la zone B1:B10

le code:

Function RechercheMulti(Cellules As Range, texte As String)

Dim result() As String

Dim I As Integer

ReDim result(0)

For I = 1 To Cellules.Count

If InStr(Cellules(I), texte) > 0 Then

result(UBound(result)) = Cellules(I)

ReDim Preserve result(UBound(result) + 1)

End If

Next I

If UBound(result) > 0 Then

ReDim Preserve result(UBound(result) - 1)

End If

If Selection.Rows.Count > 1 Then

RechercheMulti = Application.Transpose(result)

Else

RechercheMulti = result

End If

End Function

Je vous mets un fichier type reprenant ma demande

pour le code, comment je relis le code a ma recherche ?

137classeur2.zip (6.51 Ko)

Bonjour,

Pour le code, il faut créer un module (outils-macro-visual basic en 2003).

Tu demande à renvoyer la liste dans une cellule, pour pouvoir sélectionner.

On peut renvoyer dans une seule cellule, la liste de tous les mots comportant la chaine cherchée , mais pour quoi faire? comment tu veux sélectionner quelque chose dans la cellule ?

je te renvoie ton fichier complété avec la macro en question en attendant

218classeur2.zip (9.22 Ko)

Re.

Sans être sur que ce soit ce que tu cherche à faire, voici une ébauche.

Un inconvénient peut-être: Tes données doivent être triées par ordre alphabétiques.

Ensuite, une liste déroulante pour faire la sélection des mots au fur et à mesure de ce que tu saisie dans ta cellule.

Je te laisse me dire comment tu le sens.

253jean.zip (6.95 Ko)

fregoli merci de ton aide, pass-pass à repondu a ta question

il faut une liste déroulante afin de choisir le nom que l'on veut

pass-pass ce que tu as fait me convient excepté le tri de la colonne par ordre alphabetique

car c'est une autre colonne qui est maitre dans mon fichier

il y a t-il un moyen de ne pas passer par le tri ?

Re.

pass-pass ce que tu as fait me convient excepté le tri de la colonne par ordre alphabetique

J'ai peur de ne pas avoir d'autres solutions à te proposer. Je ne maitrise pas suffisament VBA pour créer une combobox avec les critères que tu souhaites obtenir.

Je dois laisser la main. Désolé.

merci pass-pass de ton aide

je pensais a un truc pour utiliser ce que tu as fait, je m'explique :

dans la colonne A avoir mes noms que je ne peux pas classer par ordre alphabétique

dans la colonne B se serait d'avoir tous les noms de la colonne A mais triés, c'est possible ça ?

Bonjour à tous,

Solution avec filtre élaboré

Sub Recherche()
Dim Lg%
    Application.ScreenUpdating = False
    On Error Resume Next
        ActiveSheet.ShowAllData
    On Error GoTo 0
        Lg = Range("b65536").End(xlUp).Row
        Cells(2, 11) = "=COUNTIF(b9,""*"" &$d$2&""*"")>0"
        Range("b8:d" & Lg).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
        Range("k1:k2"), Unique:=False
End Sub

Bonne journée

Claude

merci Dubois

c'est une solution mais la solution de pass-pass me semblait plus adapté ormis le probleme de classement par odre alphabétique que je ne peux faire

il n'y a pas de solution pour faire ce classement dans une autre colonne ?

re,

Avec le filtre, on peut mettre le résultat où l'on veut,

envoie une feuille avec la présentation souhaitée

Claude

dans le fichier joint, qu'a fait pass-pass, la recherche et le resultat se font dans la même case (D2)

et ça pour moi c'est le top

le problème c'est qu'il faut classer les noms par ordre alphabétique et ça je ne peux pas le faire

je me repète dans mes posts mais c'est pour ne pas perdre le fil....

je réponds a ta demande avec ce fichier ?

Rechercher des sujets similaires à "recherche mot incomplet"