OVH Cloud OVH Cloud

Recherche avec "contient"

2 réponses
Avatar
Mazava
Bonjour

Dans une macro j'utilise le code suivant pour la recherche
=3D=3D=3D=3D=3D
ref1 =3D InputBox("Entrer le nom =E0 rechercher ")
If ref1 =3D "" Then
Exit Sub
Else =20
Set cell1 =3D ActiveSheet.Columns.Find(what:=3Dref1,=20
LookIn:=3DxlValues, LookAt:=3D _
xlPart, SearchOrder:=3DxlByColumns,=20
SearchDirection:=3DxlNext, MatchCase:=3D _
False)

End if
=3D=3D=3D=3D=3D=3D=3D
Le probl=E8me est que l'utilisateur ne connais pas=20
l'=E9criture exact du nom. Ex: le nom aurait pu etre =E9crit=20
C. Dupont ou C Dupont ou C.Dupont.=20
Ce que je veux mettre dans la recherche=20
c'est "contient 'Dupont'" donc rentrer juste Dupont

Merci d'avance pour une id=E9e

Mazava

2 réponses

Avatar
D.LAIR
Bonjour,
Il faut alors que ref1 soit égal à DUPONT :
- soit on teste après saisie qu'il n'y a pas d'espace ou
de point (en gros un seul mot) et on supprime ce qui est
en trop, ou on repose la question en cas de doute...
Pour utiliser le "find", je ne crois pas qu'on puisse
faire autrement.
DL
-----Message d'origine-----
Bonjour

Dans une macro j'utilise le code suivant pour la recherche
=====
ref1 = InputBox("Entrer le nom à rechercher ")
If ref1 = "" Then
Exit Sub
Else
Set cell1 = ActiveSheet.Columns.Find(what:=ref1,
LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByColumns,
SearchDirection:=xlNext, MatchCase:= _
False)

End if
=======
Le problème est que l'utilisateur ne connais pas
l'écriture exact du nom. Ex: le nom aurait pu etre écrit
C. Dupont ou C Dupont ou C.Dupont.
Ce que je veux mettre dans la recherche
c'est "contient 'Dupont'" donc rentrer juste Dupont

Merci d'avance pour une idée

Mazava
.



Avatar
Jean-François Aubert
Salut Mazava,

Tu peux intégrer dans le Find des caractères de substitution

Sub yy()
ref1 = InputBox("Entrer le nom à rechercher ")
If ref1 = "" Then
Exit Sub
Else
ref1 = "*" & ref1
Set cell1 = ActiveSheet.Columns.Find(what:=ref1, _
LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, MatchCase:= _
False)

End If
End Sub


--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}


"Mazava" a écrit dans le message de
news:0b1601c3c62e$015838a0$
Bonjour

Dans une macro j'utilise le code suivant pour la recherche
==== ref1 = InputBox("Entrer le nom à rechercher ")
If ref1 = "" Then
Exit Sub
Else
Set cell1 = ActiveSheet.Columns.Find(what:=ref1,
LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByColumns,
SearchDirection:=xlNext, MatchCase:= _
False)

End if
====== Le problème est que l'utilisateur ne connais pas
l'écriture exact du nom. Ex: le nom aurait pu etre écrit
C. Dupont ou C Dupont ou C.Dupont.
Ce que je veux mettre dans la recherche
c'est "contient 'Dupont'" donc rentrer juste Dupont

Merci d'avance pour une idée

Mazava