Titre tableau Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
q
quattro26140
Membre habitué
Membre habitué
Messages : 52
Appréciation reçue : 1
Inscrit le : 15 mai 2017
Version d'Excel : 2010FR

Message par quattro26140 » 21 mars 2020, 18:27

Bonjour

Voici mon fichier :
ReparationModif.xlsm
(56.49 Kio) Téléchargé 8 fois
Comment afficher dans mon Listbox1, les titres de mon tableau excel correspondant : Type, Désignation, Réference etc....

Merci
Avatar du membre
ric
Membre impliqué
Membre impliqué
Messages : 2'743
Appréciations reçues : 229
Inscrit le : 29 mai 2018
Version d'Excel : 365 fr 32 bits

Message par ric » 21 mars 2020, 19:08

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
Copie de ReparationModif.xlsm
(50.5 Kio) Téléchargé 4 fois
Un bon dépanneur : la touche F8 pour faire un Pas-à-Pas sur le code. :mrgreen:
q
quattro26140
Membre habitué
Membre habitué
Messages : 52
Appréciation reçue : 1
Inscrit le : 15 mai 2017
Version d'Excel : 2010FR

Message par quattro26140 » 22 mars 2020, 18:23

Bonjour

Voici mon fichier :
ReparationModif.xlsm
(62.11 Kio) Téléchargé 4 fois
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
Avatar du membre
xorsankukai
Membre impliqué
Membre impliqué
Messages : 2'327
Appréciations reçues : 263
Inscrit le : 7 octobre 2014
Version d'Excel : 2010 FR

Message par xorsankukai » 22 mars 2020, 19:06

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.JPG
Cordialement,
xorsankukai

La connaissance, c’est partager le savoir qui nous fait grandir.
q
quattro26140
Membre habitué
Membre habitué
Messages : 52
Appréciation reçue : 1
Inscrit le : 15 mai 2017
Version d'Excel : 2010FR

Message par quattro26140 » 22 mars 2020, 21:37

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
Avatar du membre
ric
Membre impliqué
Membre impliqué
Messages : 2'743
Appréciations reçues : 229
Inscrit le : 29 mai 2018
Version d'Excel : 365 fr 32 bits

Message par ric » 22 mars 2020, 21:40

Bonjour à tous,
quattro26140 a écrit :
22 mars 2020, 18:23
... 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
Un bon dépanneur : la touche F8 pour faire un Pas-à-Pas sur le code. :mrgreen:
Avatar du membre
ric
Membre impliqué
Membre impliqué
Messages : 2'743
Appréciations reçues : 229
Inscrit le : 29 mai 2018
Version d'Excel : 365 fr 32 bits

Message par ric » 22 mars 2020, 21:43

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
Un bon dépanneur : la touche F8 pour faire un Pas-à-Pas sur le code. :mrgreen:
Avatar du membre
xorsankukai
Membre impliqué
Membre impliqué
Messages : 2'327
Appréciations reçues : 263
Inscrit le : 7 octobre 2014
Version d'Excel : 2010 FR

Message par xorsankukai » 23 mars 2020, 09:37

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= ... eteListBox
Les labels s'adaptent automatiquement aux colonnes...


En essayant de l'adapter à ton fichier, voici le rendu:
Capture.JPG
Copie de ReparationModif-1.xlsm
(50.25 Kio) Téléchargé 4 fois

Cordialement,
1 membre du forum aime ce message.
xorsankukai

La connaissance, c’est partager le savoir qui nous fait grandir.
Avatar du membre
ric
Membre impliqué
Membre impliqué
Messages : 2'743
Appréciations reçues : 229
Inscrit le : 29 mai 2018
Version d'Excel : 365 fr 32 bits

Message par ric » 23 mars 2020, 11:31

Bonjour à tous,

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






ric
ReparationModif-1x.xlsm
(49.78 Kio) Téléchargé 7 fois
1 membre du forum aime ce message.
Un bon dépanneur : la touche F8 pour faire un Pas-à-Pas sur le code. :mrgreen:
B
Boisgontierjacques
Membre fidèle
Membre fidèle
Messages : 470
Appréciations reçues : 109
Inscrit le : 5 octobre 2018
Version d'Excel : 2016

Message par Boisgontierjacques » 26 mars 2020, 18:35

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
Copie de ListBoxEntete1.xlsm
(37.29 Kio) Téléchargé 7 fois


Sujet remonté par quattro26140 le 26 mars 2020, 18:35.
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message