Problème avec listbox

Airone784

XLDnaute Occasionnel
Salut à tous,

J'ai un fichier qui doit me permettre de sélectionner dans une listbox une ville en fonction des caractères saisis dans une textbox. Mais là je bloque j'ai un code erreur, je joins le fichier pour que vous me sauviez de ma galère.

Merci d'avance :)
 
Dernière édition:

Theze

XLDnaute Occasionnel
Re : Problème avec listbox

Bonsoir,

La proc es :
Code:
Sub es()

    'initialisation de la liste
    With Sheets("bdd")
    
        t = .Range("B1:B" & .Cells(.Rows.Count, 2).End(xlUp).Row)
    
    End With
    
    Listbox1.List = t
    
    Textbox2 = Listbox1.ListCount

End Sub

Hervé.
 

kjin

XLDnaute Barbatruc
Re : Problème avec listbox

Bonsoir,
Ce code nécessiterait d'être revu...
Qq corrections en ce qui concerne ces 2 procédures
Code:
Sub es()
With Sheets("bdd")
    t = .Range("b2:b" & .Range("B65000").End(xlUp).Row).Value
End With
Listbox1.List = t
Textbox2 = Listbox1.ListCount
End Sub
Code:
Private Sub Textbox1_Change()
Listbox1.Clear
x = 1
For i = 1 To UBound(t)
    If t(i, 1) Like "*" & Textbox1.Value & "*" Then
        ReDim Preserve ta(1 To x)
        ta(x) = t(i, 1)
        x = x + 1
    End If
Next i
If x > 1 Then Listbox1.List = Application.Transpose(ta)
Textbox2 = Listbox1.ListCount
Erase ta
End Sub
A+
kjin
 
Dernière édition:

Airone784

XLDnaute Occasionnel
Re : Problème avec listbox

Merci Hervé, ça marche du coup.

J'ai essayé d'appliquer tes modifs aussi Kjin, mais la listbox ne fonctionne plus si je change le code, bizarre... D'ailleurs, peux-tu m'expliquer le code que tu m'as envoyé car j'ai du mal à comprendre plusieurs termes malgré l'aide excel (ubound, redim preserve, transpose, erase) :

Avec ce code, ça déconne, j'ai donc laissé l'ancien :

Code:
Private Sub Textbox1_Change()
Listbox1.Clear
x = 1
For i = 1 To UBound(t)
    If t(i, 1) Like "*" & Textbox1.Value & "*" Then
        ReDim Preserve ta(1 To x)
        ta(x) = t(i, 1)
        x = x + 1
    End If
Next i
If x > 1 Then Listbox1.List = Application.Transpose(ta)
Textbox2 = Listbox1.ListCount
Erase ta
End Sub

Merci encore :)

PS : J'ai récupéré mon code via le forum au départ, c'est pour ça que je me permets de te demander de plus amples explications... :)
 
Dernière édition:

kjin

XLDnaute Barbatruc
Re : Problème avec listbox

Bonsoir,
Code:
Private Sub Textbox1_Change()
Listbox1.Clear
x = 1
'on boucle du premier au dernier élément du tableau t
For i = 1 To UBound(t)
    'si la valeur contient la chaine de caractères de textbox1
    If t(i, 1) Like "*" & Textbox1.Value & "*" Then
        'on redimensionne le tableau ta en preservant les données dejà inscrites
        ReDim Preserve ta(1 To x)
        'et on y ajoute la valeur
        'note que t est un tableau à 2 dimensions; pour obtenir une seule dimension
        '(puisqu'il n'y a qu'une seule colonne), à l'initialisation, il fallait écrire
        't = Application.Transpose(.Range("B2:B" & .Range("B65000").End(xlUp).Row).Value)
        'et dans ce cas on ecrirait
        'ta(x) = t(i)
        ta(x) = t(i, 1)
        'on incrémente x
        x = x + 1
    End If
Next i
'il faut tester l'existence d'au moins une valeur dans le tableau ta sinon bug !
'c'est le cas x > 1
If x > 1 Then Listbox1.List = Application.Transpose(ta)
Textbox2 = Listbox1.ListCount
'on vide le tableau ta
Erase ta
End Sub

@klin, tu as oublié le tableau t

A+
kjin
 

manu_tella

XLDnaute Junior
Bonjour à tous,

Je déterre complètement ce vieux post de 2011 car je souhaite réutiliser ce code mais dans mon cas, les données de la bdd ne sont pas en colonne mais en ligne. j'ai retourné le problème dans tous les sens. Au mieux j'arrive à faire la liste dans la listbox mais le reste du code ne fonctionne plus!

Je n'arrive pas a transposer facilement ce code à mon besoin.
Quelle transformation faut-il faire pour pouvoir remplir la listbox à partir d'une ligne de l'onglet bdd?

d'avance merci pour votre aide précieuse.

je mets en PJ le modèle (sans modification du code initial, j'ai trop honte)

manu
 

Pièces jointes

  • airone_en_ligne.xls
    50 KB · Affichages: 5

Statistiques des forums

Discussions
314 013
Messages
2 104 543
Membres
109 071
dernier inscrit
lionel57800