XL 2016 Alimenter listbox avec une énorme liste

  • Initiateur de la discussion Initiateur de la discussion KTM
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

KTM

XLDnaute Impliqué
Bonjour Chers tous
j'ai une plage de 8000 lignes et 13 colonnes que je voudrais afficher dans mon listbox .
J'ai utilisé la méthode Rowsource puis la méthode List mais mon userform charge lentement au lancement.
Je voudrais savoir s'il existe une autre méthode pour charger rapidement mon listbox.
Merci!!!
 
Bonjour KTM, Staple1600, Chti160, le forum

Bonjour Chers tous
j'ai une plage de 8000 lignes et 13 colonnes que je voudrais afficher dans mon listbox .
J'ai utilisé la méthode Rowsource puis la méthode List mais mon userform charge lentement au lancement.
Je voudrais savoir s'il existe une autre méthode pour charger rapidement mon listbox.
Merci!!!
Cela vient peut être de la façon dont tu utilises la méthode list, le plus rapide serait de l'alimenter directement par un tableau Vb, mais sans le code et sans fichier, difficile de savoir comment tu fais ...

Cordialement, @+
 
Bonjour Bernard_XLD

Ca se remplit certes
VB:
Private Sub UserForm_Initialize()
Dim t
Range("a1:A8000") = "=row()"
t = Range("a1:A8000").Value2
ListBox1.List = t
End Sub
Mais combien de secondes font 8000 clics pour arriver en bas de ma ListBox?
Je remets mon 😱 de mon précédent message 😉
 
Bonsoir Job75

Je précise ma pensée
Je n'ai jamais vu personne lire une liste de 8000 items dans une listbox (*)
(ou lire ou parcourir 65000 lignes d'un classeur)
D'ailleurs le code du message#6 est lui aussi quasi-immédiat

(*) Si les valeurs sont chargées dans une listbox, c'est bien que quelqu'un va cliquer dessus.
C'est déjà la croix et la bannière niveau manipulation quand une listbox contient 50 éléments.
 
Re


Oui
Mais qui peut humainement rechercher visuellement un élément parmi 8000?
Parcourir la liste des polices disponibles est déjà fastidieux
( 213 polices s'affichent dans la listbox de Format/Format de cellule/Police dans Excel)
C'est simplement ce que je voulais faire remarquer.
 
Re

KTM
Ouf, j'ai cru que mon dentifrice était inefficace.

Mais par curiosité
Tu as vraiment une liste qui comporte 8000 éléments ?
Et tu les parcours un à un pour en choisir un en cliquant sur la ListBox?

NB: C'est cela qui m'a interpellé
(et ce n'était pas une critique à ton endroit)
 
Bonjour le forum,
Et tu les parcours un à un pour en choisir un en cliquant sur la ListBox?
Allons donc JM, j'ai bien dit :
Une ListBox n'est pas faite pour lire tous ses éléments, juste ceux que l'on recherche...
Voyez ce fichier (2) et la macro :
VB:
Private Sub TextBox1_Change()
Dim x, tablo, ncol%, i&, j%, n&, a(), k%, b()
x = TextBox1.Text
tablo = [A1:M8000] 'matrice, plus rapide
ncol = UBound(tablo, 2)
For i = 1 To UBound(tablo)
    For j = 1 To ncol
        If tablo(i, j) Like x Then
            n = n + 1
            ReDim Preserve a(1 To ncol, 1 To n)
            For k = 1 To ncol
                a(k, n) = tablo(i, k)
            Next k
            Exit For
        End If
Next j, i
If n = 0 Then ListBox1.Clear: GoTo 1
'---transposition---
ReDim b(1 To n, 1 To ncol)
For i = 1 To n
    For j = 1 To ncol
        b(i, j) = a(j, i)
Next j, i
'---restitution---
ListBox1.List = b
1 TextBox2 = n
End Sub
A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
150
Retour