intégrer un outil de recherche dans une userform

mathieu.cxp

XLDnaute Nouveau
Bonjour à tous.

Voici le Problème que je rencontre : Je souhaiterai faire une userform avec un outil de recherche intégré.
J'ai une liste de 200 applications (colone A) et un code équivalent à l'application (colone B)
J'ai créé une liste dans ma userform qui permet de sélectionner l'application voulue, et de retourner le code équivalent (aucun soucis pour faire ça grâce à vous ).
Maintenant, ce que je souhaiterai faire :
Dans ma userform, avoir un textBox, servant de champ de recherche.
Quand je tappe un mot dedans, que la liste déroulante ne propose plus que les applications contenant ce ou même CES mots
Et toujours, que quand je sélectionne mon application dans cette liste déroulante dynamique, mon code équivalent soit retourné

Si vous avez besoin d'un fichier pour démarrer, n'hésitez pas à me le faire savoir :)

Merci d'avance à tous ceux qui voudront bien se pencher sur mon problème.

Bonne Journée.
 

pierrejean

XLDnaute Barbatruc
Re : intégrer un outil de recherche dans une userform

Re

Vois si tu peux t'inspirer de ceci

Sinon il est possible de traiter ton fichier
 

Pièces jointes

  • tricombo.zip
    8.8 KB · Affichages: 98
  • tricombo.zip
    8.8 KB · Affichages: 92
  • tricombo.zip
    8.8 KB · Affichages: 90

mathieu.cxp

XLDnaute Nouveau
Re : intégrer un outil de recherche dans une userform

super, merci beaucoup ! !
Je pense que ça doit convenir à ce que je souhaite faire :)

Question en passant : j'ai déjà tout un code de userform.
Est-ce qu'il vaut mieux que j'intègre ce code dedans, ou vaut-il mieux faire un appel à ces fonctions ?

Merci encore, c'est exactement ce que je cherche :)

Toujours aussi forts sur ce forum ! ! !
 

mathieu.cxp

XLDnaute Nouveau
Re : intégrer un outil de recherche dans une userform

euh...
J'avoue que je coince un peu sur la modif... :-/


En fait, j'ai 2 feuilles :
une OFFRES
une PARAMETERS

La liste des pays se trouve dans la feuille PARAMETERS.
Elle est déclarée comme APPLI

J'ai essayé le code suivant, mais ça ne fonctionne pas :
Code:
Private Sub tb_SEARCH_Change()
cbAPPLICATION.Clear
For n = 1 To Range("APPLI")
 If InStr(Range("APPLI" & n), tb_SEARCH) <> 0 Then
   cbAPPLICATION.AddItem Range("A" & n)
 End If
Next n
End Sub

J'ai uniquement besoin de cette fonction, car je ne souhaite pas écrire la valeur de retour dans une cellule. Au pire, la stocker dans une variable globale, mais c'est tout.

Est-ce qu'avec un fichier ce serait plus simple ???
Je m'attèle à virer les infos capitales :)

EDIT : voilà c'est fait :)
Ya beaucoup de trucs qui trainent, mais dans l'ensemble, ya toutes les infos nécessaires pour regarder o`j'ai (encore) fait une erreur.

Merci encore pour votre aide sur ce sujet :)
 

Pièces jointes

  • exemple mathieu.zip
    43.7 KB · Affichages: 44
  • exemple mathieu.zip
    43.7 KB · Affichages: 44
  • exemple mathieu.zip
    43.7 KB · Affichages: 41
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : intégrer un outil de recherche dans une userform

Re

vois si cela te convient

Note: J'ai du remplacer le nom de la combobox cbAPPLICATION par Combobox1 car j'ai été confronté a une erreur non repertoriée du probablement a la réaction d'EXCel devant ce nom (fait des essais en changeant le nom , sans oublier de le faire dans tout le module :fonction rechercher/remplacer (les jumelles) )
j'ai egalement fait la comparaison avec Ucase pour eviter de rejeter les termes sensibles a la casse
de même j'ai situé la macro dans Afterupdate plutot que dans Change fin d'eviter de la solliciter a chaque frappe
 

Pièces jointes

  • exemple mathieu.zip
    38.8 KB · Affichages: 75
  • exemple mathieu.zip
    38.8 KB · Affichages: 74
  • exemple mathieu.zip
    38.8 KB · Affichages: 76

mathieu.cxp

XLDnaute Nouveau
Re : intégrer un outil de recherche dans une userform

pierrejean : désolé pour le language très chatié, mais franchement : tu déchire grave de chez grave.

Je suis IM-PRE-SSIO-NE ! ! !

Merci mill et mille fois pour ce travail :)

Bonne soirée à toi.

Et vraiment merci encore, tu m'enlève un épine du pied, tu ne sais pas à quel point :)
 

mathieu.cxp

XLDnaute Nouveau
Re : intégrer un outil de recherche dans une userform

bonjour.


Je reviens à la charge avec une question complémentaire.
Est-il possible de faire un champs de recherche multi critère.

Genre je met "test appli" dans le champ de recherche, et la liste affiche toutes les application qui contiennent ces 2 mots.

Je pense qu'il faut faire ça avec un &, ainsi qu'une séparation des mot par l'espace, mais j'avoue que tout ce que j'ai essayé jusqu'à présent s'est avéré infructueux :(

Est-ce que l'un d'entre vous pourrait m'aider, ou me mettre sur la piste du code à faire :)

Merci d'avance.

EDIT : voilà ce que j'ai essayé, mais celà ne fonctionne pas :(
Code:
Private Sub tb_SEARCH_AfterUpdate()
Dim variable1 As String
Dim variable2 as String

variable1 = Left(tb_SEARCH, Search(" ", A1) - 1)
variable2 = Right(tb_SEARCH, NBCAR(A1) - Search(" ", A1))
' on nettoie la liste qui apparait dans la combo box des applications
ComboBox1.Clear
For Each cel In Range("APPLI")
 If InStr(UCase(cel.Value), UCase(variable1)) <> 0 & InStr(UCase(cel.Value), UCase(variable2)) <> 0 Then
   ComboBox1.AddItem cel.Value
 End If
Next cel
End Sub
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : intégrer un outil de recherche dans une userform

Re

Voila la version avec un ou plusieurs mots pour la recherche
 

Pièces jointes

  • exemple mathieu.zip
    39.7 KB · Affichages: 69
  • exemple mathieu.zip
    39.7 KB · Affichages: 71
  • exemple mathieu.zip
    39.7 KB · Affichages: 73

pierrejean

XLDnaute Barbatruc
Re : intégrer un outil de recherche dans une userform

Re

la ligne
x=split(STR) genere un tableau nommé x contenant tous les mots séparés par un espace qui constituent STR
lbound(x) est le plus faible indice du tableau et ubound(x) le plus elevé
avec
For n = LBound(x) To UBound(x)
on explore tous les indices et donc tous les mots de STR
 

Discussions similaires

Statistiques des forums

Discussions
312 504
Messages
2 089 087
Membres
104 026
dernier inscrit
bernard58