En-têtes d'une listbox multi colonnes

blord

XLDnaute Impliqué
Bonjour à tous,

J'utilise ce code pour alimenter un listbox multi colonnes :

ListBoxGarantiesGroupe.Clear
Dim K
Dim i

K = 0

With ListBoxGarantiesGroupe
.ColumnCount = 3
.ColumnWidths = "90;450;90"
.ColumnHeads = True
End With


With Sheets("liste")
For i = 2 To .[A65000].End(xlUp).Row
Me.ListBoxGarantiesGroupe.AddItem
Me.ListBoxGarantiesGroupe.List(K, 0) = .Cells(i, 1)
Me.ListBoxGarantiesGroupe.List(K, 1) = .Cells(i, 2)
Me.ListBoxGarantiesGroupe.List(K, 2) = Format(.Cells(i, 3), "0.00")
K = K + 1
Next i
End With



Ce que j'aime avec ce code est qu'il me permet de mettre un format sur chaque colonne de la listebox si désiré, par exemple la ligne :

Me.ListBoxGarantiesGroupe.List(K, 2) = Format(.Cells(i, 3), "0.00")

Par contre, je n'arrive pas a récupérer la première ligne de mes données pour que l'étiquette de chaque colonne soit affichée dans les en-têtes de la listbox ??

Merci pour votre aide....

Benoit Lord
 

Pierrot93

XLDnaute Barbatruc
Re : En-têtes d'une listbox multi colonnes

Bonjour Benoit

A ma connaissance, tu ne peux avoir un en-tête de colonne, uniquement si ta "listbox" est alimentée par la propriété "rowsource", pas par la méthode "additem" ni par la propriété "list"... peut être mettre des labels au dessus, a voir...

bonne fin d'après midi
@+
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : En-têtes d'une listbox multi colonnes

Bonjour,

Sur cet exemple, les en-têtes de la BD sont écrits dans des labels.

Code:
Private Sub UserForm_Initialize()
  NbCol = [clients].CurrentRegion.Columns.Count
  Me.ListBox1.ColumnCount = NbCol
  Me.ListBox1.List = Range("clients").Resize(, NbCol).Value
  x = 15
  For i = 1 To NbCol
    retour = Me.Controls.Add("Forms.Label.1", "Label" & i, True)
    Me("label" & i).Caption = Cells(1, i)
    Me("label" & i).Top = 40
    Me("label" & i).Left = x
    x = x + Columns(i).Width * 1.1
    temp = temp & Columns(i).Width * 1.1 & ";"
  Next
  Me.ListBox1.ColumnWidths = temp
  For b = 1 To NbCol: Set Lbl(b).GrLabel = Me("Label" & b): Next b
End Sub

http://boisgontierjacques.free.fr/fichiers/Formulaire/FormIntuitive5.xls


JB
Formation Excel VBA JB
 

Discussions similaires

Réponses
17
Affichages
608