Colonne LISTBOX : autosize?

Chloulou

XLDnaute Occasionnel
Bonjour le forum,

en ce milieu de semaine, bien chargée, une question me pose des soucis: comment peut on facilement dimensionner automatiquement la largeur des colonnes d'une Listbox multicolonne?

j'ai pas trouvé de fonction simple alors j'ai commencé un algorithme un peu lourd : qui récupère la longueur maximale des différents artciles des colonnes (en nombre de caractères) convertit cette longueur en point et rentre les valeurs dans :
Code:
 listbox.columnwidths =lgeur1;lgeur2....

l'idéal ce serait quand même :
Code:
 listbox.columnwidths.autosize= true
, qui malheureusement n'existe pas...

avis aux initiés pour une astuce

merci d'avance
 

Spitnolan08

XLDnaute Barbatruc
Re : Colonne LISTBOX : autosize?

Bonjour,
Code:
et pourquoi aussi ne pas mettre des lignes pour séparer les colonnes de la liste box?
Ca ce n'est pas possible sauf à bidouiller avec des colonnes de largeur minimale comprenant un "!" par exemple Ou à utiliser une Listview.

Cordialement
 

Chloulou

XLDnaute Occasionnel
Re : Colonne LISTBOX : autosize?

en fait j'avais déjà lu pas mal de posts sur les listview, mais je ne trouve pas le controle listview dans ma boite à outils de controle pour les USF?

ca existe plus sur excel 2002 ou je cherche peut etre pas au bon endroit?
 

titilex

XLDnaute Occasionnel
Re : Colonne LISTBOX : autosize?

Bonjour chloulou !!!!

He bien ecoute concernant les listbox ou liste deroulante... Pour la taille des colonnes je ne crois pas qu'il y ait de facon de les dimensionner de maniere automatique, en revanche tu peux les ajusté aussi via la feuille de propriete...
Et pour les séparateurs de colonnes regarde ce site, que l'on retrouve sur pas mal de post d'ailleurs :
Utiliser les contrôles dans un UserForm, en VBA Excel - Club d'entraide des développeurs francophones

Dans la sections listbox tu regarderas il y a un item qui dit comment faire un ptit "subterfuge" pour les séparateurs de colonnes...
Bonne apres midi

@lex
 

bqtr

XLDnaute Accro
Re : Colonne LISTBOX : autosize?

Bonsoir le forum,

En faisant une recherche sur le site, j'ai trouvé ce fil, qui parle de dimensionnement automatique des colonnes d'une listbox.

Voici une façon de faire. L'exemple ajuste la largeur des colonnes de la plage de référence, puis celle de la listbox , et enfin celle du userform.
La largeur des colonnes de la listbox est automatiquement dimensionnée par rapport à celle des colonnes de la plage.
La partie du code qui ajuste la largeur des colonnes de la listbox est tirée d'un livre sur le VBA.

Code:
Private Sub UserForm_Initialize()

Dim plg As Range
Dim cw

Set plg = Range("A1:E" & Range("E65536").End(xlUp).Row)
plg.Columns.AutoFit
ListBox1.Width = 20 + plg.Width
Me.Width = ListBox1.Width + 20
CommandButton1.Left = (Me.Width / 2) - (Me.CommandButton1.Width / 2)
With ListBox1
     cw = ""
    .ColumnCount = plg.Columns.Count
    .RowSource = plg.Address
       For i = 1 To .ColumnCount
          cw = cw & plg.Columns(i).Width & ";"
       Next
    .ColumnWidths = cw
    .ListIndex = -1
End With

End Sub

Bonne nuit
 

Pièces jointes

  • ColListbox.xls
    33 KB · Affichages: 957

Chloulou

XLDnaute Occasionnel
Re : Colonne LISTBOX : autosize?

Merci bien pour cette réponse,

je croyais ce sujet enterrais depuis déjà un siècle...

je garde ca sous le coude pour une utilisation ultérieure, et je ne dois pas etre le seul qui avait d'une macro comme celle la.

@+
 

grisan29

XLDnaute Accro
Re : Colonne LISTBOX : autosize?

bonjour a vous tous
je suis justement a la recherche d'un code pour autosize de la colonne d'un listbox le fichier de bqtr est parfait, mais j'utilise un classeur a 8 feuilles qui sont recherchées par une combobox et le contenu de ces feuils est affichés dans une listbox apres sélection de la feuille dans le combobox
c'est la 3eme colonne qui a ce besoin surtout
chaque feuille est identique

voila mon problème je peux joindre un fichier exemple ci besoin
cordialement

Pascal
 
Dernière édition:

Membres actuellement en ligne

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 976
dernier inscrit
kaizertv2001@gmailcom