[listbox sous vba excel] pb affichage

Résolu/Fermé
Thierry - 9 août 2005 à 18:55
 Thierry - 10 août 2005 à 21:03
Bonjour,
J'ai un listbox ou j'ajoute des éléments au moyen d'un textbox.
Lorsque le nombre d'éléments dépasse la taille de la listbox, je ne vois plus les derniers éléments saisis.
Comment faire pour que le dernier élément saisi soit visible dans la listbox ?
Merçi de vos réponses

8 réponses

Utilisateur anonyme
9 août 2005 à 19:14
Bonjour,

chez moi, chaque ajout est affiché immédiatement !

ou je ne comprends pas bien la question !

Private Sub cmd_Charger_Click()

    Dim Boucle As Integer
    
    For Boucle = 10 To 50
        lbx_Texte.AddItem Boucle
    Next Boucle
    
End Sub
'


Lupin
1
Utilisateur anonyme
10 août 2005 à 17:55
Bonjour,

Sous VB6, il y a une option qui permet d'effectuer un tri à même
l'insertion de valeur, toutefois cette option n'est pas reconduit
sous VBA.

La seule solution que je vois est d'effectuer ce tri lors d'un ajout.
    Dim Texte() As String
    Dim Nombre, Boucle As Integer
    
    Nombre = ComboBox1.ListCount
    ReDim Texte(Nombre)
    
    ComboBox1.ListIndex = 1
    For Boucle = 1 To Nombre
        Texte(Boucle) = ComboBox1.Text
        ComboBox1.ListIndex = ComboBox1.ListIndex + 1
    Next Boucle
    
    ' ... effectuer le tri sur le tableau Texte
    
    ComboBox1.Clear
    For Boucle = 1 To Nombre
        ComboBox1.AddItem Texte(Boucle)
    Next Boucle


ou peut-être de redimmensionner votre liste déroulante.

Bon courage

Lupin
1
Bonjour,

Mes éléments s'ajoute bien tous seuls (additem) dans la listebox.
Mais lorsque la listbox devient trop petite pour voir tous les items, je suis obligé de me servir de la souris pour voir le dernier item saisis.
Ce que je ne veux pas.

Je veux que le dernier item soit visible sans manipuler la souris.
En fait il faudrait que la liste monte au lieu de descendre, puisque je vois toujours le 1er.

Peut-être est-ce plus clair ?
En tout merçi pour la réponse.
Thierry
0
Bonjour,

Le problème c'est que je ne peut absoulument pas changer l'ordre dans le lequel les items sont entrés !!

Et je peux avoir jusqu'à 600 items dans listbox, donc je ne peux pas la redimenssionner.
Merçi quand même.

Thierry
0

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

Posez votre question
Utilisateur anonyme
10 août 2005 à 18:53
re:

j'avais compris que vous vouliez avoir le dernier ajouter
en haut de la liste :

modifier le code du style:

    Dim Texte() As String
    Dim Nombre, Boucle,Cmpt As Integer
    
    Nombre = ComboBox1.ListCount
    ReDim Texte(Nombre)
    ReDim Retour(Nombre)
    
    Cmpt = 1
    ComboBox1.ListIndex = Nombre
    For Boucle = Nombre To 1 Step -1
        Texte(Cmpt) = ComboBox1.Text
        Cmpt = ( Cmpt + 1 )
        ComboBox1.ListIndex = ComboBox1.ListIndex - 1
    Next Boucle
    
    ComboBox1.Clear
    For Boucle = 1 To Nombre
        ComboBox1.AddItem Texte(Boucle)
    Next Boucle



Lupin
0
Bonsoir,

Merci de votre aide

Mais d'après ce que je comprend de votre code, il faut que je transfere les données de ma listbox dans une variable tableau, du dernier éléments vers le 1er élément et ensuite après avoir nettoyé la listbox mettre la variable tableau dans la listbox dans le sens contraire.

Mais il s'agit d'une listbox et non d'une combobox.

Voici en détail ce que j'ai :

1 textbox pour entrer mes éléments
1 listbox ou zone de liste non modifiable qui contient tous les éléments entrés dans la textbox
Plus divers boutons pour modifié suprrimer etc...

En fait je pense qu'il faudrait que je puisse selectioner le dernier élément entré dans la liste box à chaque fois que j'appuie sur la touche ENTRER. Mais je ne sais pas faire
Peut-être avec selected ?

Merci encore une fois
0
Utilisateur anonyme
10 août 2005 à 20:01
re:

désolé, j'étais vraiment dans le champs ...

voilà ce que vous voulez je crois !

    Dim Boucle As Integer
    
    ListBox1.Clear
    
    For Boucle = 1 To 50
        ListBox1.AddItem Boucle
    Next Boucle

    ListBox1.Selected(ListBox1.ListCount - 1) = True


Lupin
0
Bonsoir,

C'est bon, ça marche impec !

C'est exactement ce que je voulais, merci encore pour votre aide
0