Bonjour,
Bon je suis désolé mais je suis de nouveau bloqué. Je m'explique : Je souhaite que l'utilisateur de mon moteur de recherche puisse avoir la possibilité de taper plusieurs mots de recherche. Exemple de recherche : "Station de pompage".
Avec la méthode Find et si le tableau comporte le nom : Station de pompage. Pas de problème ca fonctionne (grâce au paramètre : LookAt:=XlPart.)
Mais si l'utilisateur est approximatif dans sa recherche et qu'il tape juste : "Station pompage" alors la fonction Find me renverra indifféremment dans sa liste de résultat les occurrences avec le mot "station" et avec le mot "pompage" et de fait ne respectera pas la recherche qui consiste à avoir les deux mots
Donc En utilisant l'exemple juriceprudence de pierrejean, je me suis dit, une fois le premier mot trouvé dans une cellule du tableau , je recherche le second mot dans cette même cellule avant de continuer le balayage du tableau.
je sépare les deux mots recherché :
motclef = Split(mot, " ")
une fois que le premier mot est trouvé :
Set c = Plage.Find(motclef(0), LookIn:=xlValues, lookat:=xlPart)
Je fais la recherche du second mot uniquement dans la cellule trouvée :
If Not c Is Nothing Then
firstAddress = c.Address
Do
If UBound(motclef) > 0 Then
NouvellePlage = c.Address
Set SecondeRecherche = Range(NouvellePlage).Find(motclef(1), LookIn:=xlValues, lookat:=xlPart)
If Not SecondeRecherche Is Nothing Then
Je copie cette ligne dans mon tableau de resultat.....
MAIS CA N'A PAS L'AIR DE FONCTIONNER, ma macro me dit que j'ai une boucle Loop sans DO et je crois qu'il y a un problème également avec le c.Address ....