dans listbox le row trop long

Dennnisss

XLDnaute Occasionnel
Bonjour messieurs & dames

J'ai un listbox qui fonctionne tres bien mon probleme j'ai essayer de le limite a ligne 120 mais il continue quand meme jusqu'a 65,000

je vous envoie un petit example

alors je cherche la facon de le faire arrete a la ligne 120

puis-je avoir votre aide svp

merci dennniss:eek: :eek:
 

Pièces jointes

  • Trouble avec listbox.zip
    20.7 KB · Affichages: 42
  • Trouble avec listbox.zip
    20.7 KB · Affichages: 50
  • Trouble avec listbox.zip
    20.7 KB · Affichages: 46

jp14

XLDnaute Barbatruc
Re : dans listbox le row trop long

Bonjour

Une piste
Définir la plage avec précision
au lieu de
Set plage = .Range("B5:B124")
écrire
dl = .Range("A65536").End(xlUp).Row) ( F par exemple)
Set plage = .Range("B5:B" & dl)
en choissant la colonne la plus repésentative

deuxième piste
Dans la boucle tester le contenu d'une cellule
IF valeur cellule = "" the exit for
en choissant une cellule représentative

JP
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : dans listbox le row trop long

bonjour Denniss

Salut jp 14

@ Denniss

tu mettais en Lisbox1 6 fois trop de lignes

dans la 2eme boucle le Additem etait de trop

par ailleurs il n'y avaitque 5 colonnes dans la definition de la listebox

vois corrigé
Code:
For Each cel In plage 'boucle 1 : sur toutes les cellules de la plage
       [COLOR=lime] ListBox1.AddItem 'ajoute un élément à la listbox
[/COLOR]    For y =[COLOR=seagreen] 0 To 5[/COLOR] 'boucle 2 : sur 6 éléments
       [COLOR=red] 'ListBox1.AddItem 'ajoute un élément à la listbox
[/COLOR]        ListBox1.Column(y, x) = cel.Offset(0, y).Value 'ajoute l'élément par colonne
    Next y 'prochain élément de la boucle 2
    
    x = x + 1 'redéfinit la variable x
Next cel 'prochaine cellule de plage (boucle 1)

ps: autre rappel : de 0 a 5 --> 6 colonnes
 

Pièces jointes

  • denniss.zip
    24.1 KB · Affichages: 47

Dennnisss

XLDnaute Occasionnel
Re : dans listbox le row trop long

salut jp14 j'ai essayer ce que tu ma ecrit et je ne parvient pas il continue encore jusqu'a la fin

With Sheets("Maître")
' Set plage = .Range("B5:B124") ' & .Range("A65536").End(xlUp).Row)

dl = .Range("D65536").End(xlUp).Row
Set plage = .Range("B5:B" & dl)
End With

j'ai ecrit cela comme mentionner et j'avais

alors decrit moi en plus facile ou encore modifie mon fichier joint

merci beaucoup jp14

dennnisss;) ;)
 

jp14

XLDnaute Barbatruc
Re : dans listbox le row trop long

re Bonjour Deniss, Pierrejean

après lecture de l'aide en particulier

"TextColumn, propriété, exemple

L'exemple suivant utilise la propriété TextColumn pour identifier la colonne de données dans un contrôle ListBox qui fournit les données à sa propriété Text. Il définit la troisième colonne du contrôle ListBox comme colonne de texte. Lorsque vous sélectionnez une entrée du contrôle ListBox, la valeur de la propriété TextColumn s'affiche dans le contrôle Label.

L'exemple indique également comment charger un contrôle ListBox multicolonne à l'aide de la méthode AddItem et de la propriété List.

Pour utiliser cet exemple, copiez le code suivant dans la partie Déclarations d'une feuille et vérifiez que celle-ci contient : "

voici la macro corrigée

With Sheets("Maître") 'prend en compte l'onglet "Feuil2"
dl = .Range("F65536").End(xlUp).Row

Set plage = .Range("B5:B" & dl) ' & .Range("A65536").End(xlUp).Row) 'définit la variable plage
End With
x = 0
For Each cel In plage 'boucle 1 : sur toutes les cellules de la plage
ListBox1.AddItem cel.Offset(0, y).Value
For y = 1 To 6 'boucle 2 : sur 6 éléments

'ajoute un élément à la listbox
ListBox1.Column(y, x) = cel.Offset(0, y).Value 'ajoute l'élément par colonne
Next y 'prochain élément de la boucle 2

x = x + 1 'redéfinit la variable x

Next cel 'prochaine cellule de plage (boucle 1)

Joyeux Noël

JP
 

Discussions similaires

Statistiques des forums

Discussions
312 555
Messages
2 089 544
Membres
104 208
dernier inscrit
laura29180