Titre tableau

Bonjour

Voici mon fichier :

Comment afficher dans mon Listbox1, les titres de mon tableau excel correspondant : Type, Désignation, Réference etc....

Merci

Bonjour,

Je ne connais pas tout ... je ne connais donc pas le code pour ajouter les entêtes de colonnes ... sauf en utilisant "RowSource".

Sinon, on place des "Label" en haut de la "Listbox" et l'on ajuste manuellement la largeur des "Label" avec la "largeur des colonnes" que l'on a choisi ... puis on les alimente > voir au bas de "Private Sub UserForm_Initialize",

J'ai un vague souvenir que l'on pourrait utiliser une variable tableau qui ajouterait les "Columnheads" ... je laisse les pros de la photo de valider ou d'invalider l'information.

Un essai ...

ric

Bonjour

Voici mon fichier :

J'ai rajouté ce code pour mettre des entêtes dans mon ListBox1 :

' Propiétés de mon ListBox1
With Me.ListBox1
    .ColumnCount = 9
    .ColumnWidths = "50;50;40"
    .ColumnHeads = True
    .RowSource = Range("A11:i" & Range("i10000").End(xlUp).Row).Address
End With

quand je tape mon n° de série dans Textbox5 cela me met de suite une erreur ??

Si j’enlève la ligne :

 .RowSource = Range("A11:i" & Range("i10000").End(xlUp).Row).Address

cela fonctionne mais avec les entêtes vides ?

Merci

Bonsoir quattro26140, ric, le forum,

Problème de syntaxe....

 .RowSource = Range("A11:I10000").Address

.RowSource = Range("A11:I" & Range("A" & Rows.Count).End(xlUp).Row).Address
capture

Cordialement,

Merci

mais il ya toujours une erreur lorsque je rentre un n° de série, cela me met une erreur :

'Section RECHERCHE''''''''''''''
Private Sub TextBox5_Change()
Dim Ligne As Long
Dim Tmp As String

Application.ScreenUpdating = True
With Worksheets("feuil1")
    '.Range("D1000000").Interior.ColorIndex = 2
       Me.ListBox1.Clear
    Tmp = Me.TextBox5
    If Tmp <> "" Then
 

au niveau de

Me.ListBox1.Clear

Bonjour à tous,

... quand je tape mon n° de série dans Textbox5 cela me met de suite une erreur ??

Si j’enlève la ligne :

 .RowSource = Range("A11:i" & Range("i10000").End(xlUp).Row).Address

cela fonctionne mais avec les entêtes vides ? ...

C'est exactement pourquoi j'utilisais les labels au haut de la Listbox au lieu du RowSource.

S'il y a une autre façon de coder afin d'avoir les Entêtes et de pouvoir faire une recherche, je suis preneur.

ric

Bonjour à tous.

L'on peut aussi changer la couleur de fond des Labels en blanc et ajouter des bordures pour faire accroire qu'ils font parti du Listbox.

ric

Bonjour quattro26140, ric, le forum,

ric a raison, il semblerait que la seule possibilité soit de rajouter des labels pour obtenir le rendu souhaité.

Après quelques recherches, j'ai trouvé ceci qui pourrait convenir:

https://excel.developpez.com/faq/?page=Controle#EnteteListBox

Les labels s'adaptent automatiquement aux colonnes...

En essayant de l'adapter à ton fichier, voici le rendu:

capture

Cordialement,

Bonjour à tous,

La version de xorsankukai > légèrement modifiée pour que les Labels ressemblent aux entêtes de colonne du listbox.

ric

Bonjour,

Affiche un en-tete et calcule la largeur des colonnes.

On peut faire la même chose pour des champs discontinus.

Dim Rng, NbCol
Private Sub UserForm_Initialize()
  Set f = Sheets("BD")
  Set Rng = f.Range("A2:D" & f.[A65000].End(xlUp).Row)
  NbCol = Rng.Columns.Count
  Me.ListBox1.ColumnCount = NbCol
  tblBD = Rng.Value
  For i = 1 To UBound(tblBD): tblBD(i, 4) = Format(tblBD(i, 4), "0000.00"): Next i
  Me.ListBox1.List = tblBD
  EnteteListBox
  PiedListBox
End Sub

Sub EnteteListBox()
  x = Me.ListBox1.Left + 8
  Y = Me.ListBox1.Top - 12
  For i = 1 To NbCol
    Set lab = Me.Controls.Add("Forms.Label.1")
    lab.Caption = Rng.Offset(-1).Cells(1, i)
    lab.Top = Y
    lab.Left = x
    x = x + Rng.Columns(i).Width * 1.1
    temp = temp & Rng.Columns(i).Width * 1.1 & ";"
  Next
  temp = Left(temp, Len(temp) - 1)
  Me.ListBox1.ColumnWidths = temp
End Sub

Boisgontier

Rechercher des sujets similaires à "titre tableau"