[listbox sous vba excel] pb affichage

Résolu
Thierry -  
 Thierry -
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

  1. Utilisateur anonyme
     
    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
  2. Utilisateur anonyme
     
    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
  3. thierry
     
    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
  4. thierry
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Utilisateur anonyme
     
    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
  7. thierry
     
    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
  8. Utilisateur anonyme
     
    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
  9. Thierry
     
    Bonsoir,

    C'est bon, ça marche impec !

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