Recherche mutlticritères sous VB editor

Daydayer Messages postés 201 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 13 août 2005 - 1 juin 2005 à 12:48
Daydayer Messages postés 201 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 13 août 2005 - 1 juin 2005 à 15:10
bonjour!

je réliase une interface de recherche multicritères sur une feuille excel, via VB editor.

L'interface comporte plusieurs critères de choix de recherche. L'utilisateur peut ne pas tous les remplir (y'en a 16 de critères...).

mon problème c'est comment ensuite faire ma recherche sachant que les conditions de choix des lignes correpondant aux critères vont changer selon que les cases de choix sot remplies ou non...

j'ai essayé cela (seulement pour 2 cases pour le moment):
Private Sub Search_Click()

If PlaneNumber.Value <> "" Then
If Search = "" Then Search "Range(PlaneNumberColumn + CStr(Row)).Value PlaneNumber.Value"
Else Search Search + "And Range(PlaneNumberColumn + CStr(Row)).Value PlaneNumber.Value"
End If
End If


If PlaneType.Value <> "" Then
If Search = "" Then Search "Range(PlaneTypeColumn + CStr(Row)).Value PlaneType.Value"
Else Search Search + "And Range(PlaneTypeColumn + CStr(Row)).Value PlaneType.Value"
End If
End If


LengthSearch = Len(Search)
FinalSearch = Mid(Search, 1, LengthSearch)



For Row = SearchBeginning To SearchLimit
If FinalSearch Then
MsgBox "trouvé"
End If
Next

End Sub

toutes mes var sont déclarées et initialisées.

la var Search est de type String
la var finalSearch est de type Variant (parce que je ne sais pas quel autre type lui donner)

Au fur et à mesure si les cases de l'interface ne sont pas vides, j'ajoute les conditions de recherche sous forme de string dans Search.
Une fois toutes les cases vérifiées, je veux récupérer uniquement ce qu'il y a entre les "" de Search, dans finalSearch, pour ensuite mettre mes conditions dans le if de recherche via FinalSearch.

Le problème, c'est que FinalSearch est de type variant et que avec le '=' lorsque je veux lui affecter ce qu'il y a entre les "" de Search, et bien FinalSearch est sous forme de string, donc entre "", et donc cela ne marche pas pour l'instruction if de recherche...

en gros je ne sais pas comment dire que FinalSearch, c'est un morceau d'instruction pour le if....

à l'aideueueueueueu!

Daydayerement Vôtre

4 réponses

jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
1 juin 2005 à 14:08
Bonjour,

Je voudrais bien t'aider, mais je préfererais que tu dises ce qu'il y a
dans les cellules, ce que tu veux rechercher et quoi en faire.



jpleroisse
0
Daydayer Messages postés 201 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 13 août 2005
1 juin 2005 à 14:20
dans les cellules, il peut y avoir des chiffres ou des lettres ou les deux. en fait, les types d'infos (en tout on a 16 types d'infos), c'est du style:

nom du fournisseur
mois
nom de l'employé
nombre d'heures passées....

donc sur la feuille excel contenant toutes ces données, je dois permettre à l'utilisateur de faire une recherche. Par exemple, il peut choisir sur l'interface de rechercher un nom de fournisseur particulier pour un mois particulier, et laisser les autres critères de recherche vides.
Une fois que son choix de critères est fait, je veux récupérer ces critères pour choisir parmi toutes lignes de la feuilles, celles qui contiennent ces 2 critères en même temps (s'il n'en a choisi que 2). Une fois ces infos sélectionnées dans la feuille d'après les critères, je les copie et je les colle sur une autre feuille du même classeur.pour les copier, coller, pas de pb. Moi le pb se situe au niveau de la condition de choix, vu qu'elle peut être différente à chaque fois, selon les critères choisis...

J'spr ke j'ai été assez claire...

Daydayerement Vôtre
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
1 juin 2005 à 14:51
Re,

Pas évidant, pour l'instant je ne vois qu'une solution avec InputBox.
Mais c'est pas terrible, je vais chercher, si je trouve je post de
suite.



jpleroisse
0
Daydayer Messages postés 201 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 13 août 2005
1 juin 2005 à 15:10
merci en tout cas de t'intéresser à la question. si jamais tu restes sur la solution de l'inputbox, tu pourras m'expliquer comment faire?

encore merci!

Daydayerement Vôtre
0
Rejoignez-nous