Textbox intuitive

Résolu/Fermé
max77maxou Messages postés 7 Date d'inscription dimanche 21 février 2016 Statut Membre Dernière intervention 25 février 2016 - 21 févr. 2016 à 12:25
max77maxou Messages postés 7 Date d'inscription dimanche 21 février 2016 Statut Membre Dernière intervention 25 février 2016 - 25 févr. 2016 à 05:57
Bonjour,
je fais appel aux plus compétent que moi,
voila mon soucis,
dans un userform, il y a :
textbox3 = client
textbox4 = materiel
listbox1 = liste de materiel
listbox2 = liste de client

si je clique sur un nom ds la listbox2, celui ci se met ds le textbox3
si je clique sur un materiel ds la listbox1, celui ci se met ds le textbox4
jusque la tout va bien

mais ce que je n'arrive pas, c'est que je souhaite taper la premier lettre du nom ds le textbox3, "textbox intuitive" , et que ds la listbox2 se filtre automatiquement au fur et a mesure de taper les lettres, et idem pour le textbox4 - listbox1

j'ai trouver beaucoup de code a ce sujet, mais en les appliquant cela ne fonctionne pas

merci a tous ceux qui pourrons m'aider
Max



10 réponses

Whismeril Messages postés 19145 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 29 septembre 2024 919
21 févr. 2016 à 13:31
Bonjour, VBA c'est pas mon fort, mais pourquoi ne pas utiliser des combobox?
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
21 févr. 2016 à 17:51
Bonjour,

comme ceci:


Option Explicit
Dim a, d1, tmp, c
Private Sub UserForm_Initialize()
  a = Range("A1:A195").Value 'remplir la listbox
  Me.ListBox1.List = a
End Sub
Private Sub TextBox1_Change()
   Set d1 = CreateObject("Scripting.Dictionary")
   Me.ListBox1.Clear
   tmp = UCase(Me.TextBox1) & "*"
   For Each c In a
     If UCase(c) Like tmp Then d1(c) = ""
  Next c
  Me.ListBox1.List = d1.keys
End Sub

0
max77maxou Messages postés 7 Date d'inscription dimanche 21 février 2016 Statut Membre Dernière intervention 25 février 2016
Modifié par max77maxou le 21/02/2016 à 18:54
merci a ceux qui ont repondu,

slt cs_Le Pivert,
j'ai mis le code que tu as ecri, et qd je tape une lettre ds le textbox3, j'ai une erreur, "erreur de compilation, Projet ou bibliotheque introuvable", ds private sub textbox3_change, le "d1" me pose probleme
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
21 févr. 2016 à 19:00
Voici un exemple:

http://www.cjoint.com/c/FBvr74sERZQ
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
max77maxou Messages postés 7 Date d'inscription dimanche 21 février 2016 Statut Membre Dernière intervention 25 février 2016
21 févr. 2016 à 19:07
oui c'est tout a fais ca,
sauf que sur mon classeur cela ne fonctionne pas,
pour info :
un classeur avec plusieur feuille
sur l'userform que je veux que sa sois comme ca, est sur une feuille nommer "ANNEXE", ou se trouve en colonne A les noms de client, en colonne B le materiel,

et qd je met ce code, cela ne fonctionne pas, toujour cette erreur de compilation
0
max77maxou Messages postés 7 Date d'inscription dimanche 21 février 2016 Statut Membre Dernière intervention 25 février 2016
21 févr. 2016 à 19:17
une petite modif : je me suis tromper sur le code et sur ma reponse, car je disais que le"d1" me posais probleme, en faite c'est "dl" et non "d1", donc j'ai modifier, mais maintenant j'ai toujour ce probleme d'erreur mais c'est "UCase" dans la ligne :
tmp = UCase (me.textbox3) & "*"
0
max77maxou Messages postés 7 Date d'inscription dimanche 21 février 2016 Statut Membre Dernière intervention 25 février 2016
21 févr. 2016 à 20:07
je me suis renseigner sur ce fameux"UCase", donc c'est "Retourne une chaîne ou un caractère contenant la chaîne spécifiée convertie en majuscules.", le faite qu'il me posais probleme je l'ai retirer de mon code, ce qui fonctionne, youpi, ms un autre probleme se pose encore,
comme je l'avais stipuler :
textbox3 = client
textbox4 = materiel
listbox2 = liste de client
listbox1 = liste de materiel

en ouvrant mon userform, textbox3 et textbox4 sont vide, ok
listbox2 est alimenter en client
listbox1 est alimenter en materiel
si je tape une lettre correspondante a un nom ma listbox2 se vide, et si je reviens en arriere la liste reviens ma c'est la liste de materiel,

donc a l'ouverture de l'userform tout va bien, ms une fois la lettre taper ds le textbox3, les deux listbox et textbox sont indentique
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
22 févr. 2016 à 06:48
Tout est dans le remplissage des listBox.
voici un exemple avec 2 listBox, avec les données dans 2 feuilles différentes. A toi de l'adapter à tes feuilles:

http://www.cjoint.com/c/FBwfTYu8b3Q
0
max77maxou Messages postés 7 Date d'inscription dimanche 21 février 2016 Statut Membre Dernière intervention 25 février 2016
23 févr. 2016 à 09:00
Bonjour à tous
Mon problème de listbox et textbox identique est régler en faite fallait simplement dans userform initialise mettre : a= range("A2:A195").value et a1=("B2:B195").value
Par contre après toute ces modif tout fonctionne c'est cool mais après l'avoir mis sur le pc a mon boulot j'ai une erreur 70 permission refuser donc je vais me pencher sur la question
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
23 févr. 2016 à 11:41
Si tu as des problèmes, voici une seconde approche. Se servir d'une seule listbox et d'un seul textbox pour afficher 2 listes à l'aide d'un CheckBox:

http://www.cjoint.com/c/FBxkM3Un1RQ
0
max77maxou Messages postés 7 Date d'inscription dimanche 21 février 2016 Statut Membre Dernière intervention 25 février 2016
Modifié par pijaku le 25/02/2016 à 08:34
Bonjour a tous,
oui cs_Le Pivert, effectivement cette méthode est bien aussi, ms finalement, tous va bien, j'avais le soucis du message d'erreur 70, et j'ai simplement copier le ficher de ma clé USB sur mon pc du boulot et cela fonctionne,
en tout cas je te remercie
et je met le code complet pour aider et intéresser d'autre personne

Option Explicit
Dim a, a1, d1, tmp, c

Private Sub ListBox1_Click()
If UserForm3.ListBox1.ListIndex = -1 Then Exit Sub
TextBox4 = ListBox1.Value
End Sub

Private Sub ListBox2_Click()
If UserForm3.ListBox2.ListIndex = -1 Then Exit Sub
TextBox3 = ListBox2.Value
End Sub

Private Sub TextBox3_Change()
   Set d1 = CreateObject("Scripting.Dictionary")
   Me.ListBox2.Clear
   tmp = (Me.TextBox3) & "*"
   For Each c In a
     If (c) Like tmp Then d1(c) = ""
  Next c
  Me.ListBox2.List = d1.keys
  
End Sub

Private Sub TextBox4_Change()
   Set d1 = CreateObject("Scripting.Dictionary")
   Me.ListBox1.Clear
   tmp = (Me.TextBox4) & "*"
   For Each c In a1
     If (c) Like tmp Then d1(c) = ""
  Next c
  Me.ListBox1.List = d1.keys
End Sub

Private Sub UserForm_Initialize()
  a = Range("A2:A500").Value 'remplir la listbox
  Me.ListBox2.List = a
 a1 = Range("B2:B500").Value 'remplir la listbox
  Me.ListBox1.List = a1
End Sub
0