ColumnHeads ne fonctionne pas Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Avatar du membre
GGautier
Membre fidèle
Membre fidèle
Messages : 422
Appréciations reçues : 17
Inscrit le : 18 décembre 2018
Version d'Excel : 2016 FR

Message par GGautier » 19 février 2019, 14:22

Bonjour le forum ! :)

Voilà mon soucis, je met en forme un gestionnaire dans lequel je souhaite utiliser un Listbox. J'ai récupéré (merci Jacques Boisgontier) un code qui me convient bien mais le seul hic c'est que je n'est pas d'en-têtes (le code de base permettais la création d'un label pour les en-têtes mais du fais de la très grande largeur du Listbox je ne peux utiliser cette méthode).

Ma question est donc plutôt simple mais je tourne en rond, comment utiliser ColumnHeads ??

Par avance, merci de l’intérêt porté à ce poste ;;)
Option Compare Text
Dim f, BD, ColVisu(), NbCol
Private Sub userform_initialize()
Set f = Sheets("Feuil1")
  ColVisu = Array(33, 16, 10, 1, 2, 3, 4, 12, 13, 14, 15, 17, 5, 6, 7, 8, 9, 29, 30, 31, 32, 18, 19, 20, 21, 22, 23, 24, 25, 26, 11, 27, 28)

  Ncol = UBound(ColVisu) + 1
  Set d = CreateObject("Scripting.Dictionary")
  BD = f.Range("A2:AH" & f.[A65000].End(xlUp).Row)

  For i = LBound(BD) To UBound(BD): BD(i, UBound(BD, 2)) = i + 1: BD(i, 16) = Format(CDate(BD(i, 16)), "dd/mm/yyyy hh:mm"): Next i

  For Each k In ColVisu
    x = x + f.Columns(k).Width * 1#
    temp = temp & f.Columns(k).Width * 1# & ";"
  Next
  temp = Left(temp, Len(temp) - 1)
  Me.ListBox1.ColumnCount = UBound(ColVisu) + 1 + 1
  Me.ListBox1.ColumnWidths = temp
  Me.ListBox1.ColumnHeads = True '<<<----- NE FONCTIONNE PAS
  
  '---- Contenu ListBox initial
  Dim Tbl(): n = 0
  For i = 1 To UBound(BD)
        n = n + 1
        ReDim Preserve Tbl(1 To Ncol + 1, 1 To n)
        c = 0
        For Each k In ColVisu
          c = c + 1: Tbl(c, n) = BD(i, k)
        Next k
        Tbl(Ncol + 1, n) = BD(i, UBound(BD, 2))
  Next i
  Me.ListBox1.Column = Tbl
  
End Sub
Forum.xlsm
(18.24 Kio) Téléchargé 4 fois
"Il n'y a pas de question idiote, seulement une réponse idiote" ALBERT EINSTEIN (enfin ici on évite). °oO
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 4'518
Appréciations reçues : 203
Inscrit le : 16 mars 2017
Version d'Excel : 2010 sur PC

Message par i20100 » 19 février 2019, 17:18

Bonjour,

Malheureusement ColumnHeads ne fonctionne qu'avec RowSource
Private Sub userform_initialize()
Set f = Sheets("Feuil1")
With Me.ListBox1
.RowSource = f.Name & "!" & Range("A2:AH" & f.Cells(Rows.Count, 1).End(xlUp).Row).Address
.ColumnHeads = True
.ColumnCount = 4
End With
End Sub
ps/ tu pourrais utiliser un ListView
voici un exemple,
ListView Filtre par ComboBox.xlsm
(25.3 Kio) Téléchargé 1 fois
Modifié en dernier par i20100 le 19 février 2019, 17:40, modifié 1 fois.
Si le problème est résolu, pensez au clic sur le bouton
isabelle
Avatar du membre
GGautier
Membre fidèle
Membre fidèle
Messages : 422
Appréciations reçues : 17
Inscrit le : 18 décembre 2018
Version d'Excel : 2016 FR

Message par GGautier » 19 février 2019, 17:26

C'est bon a savoir, merci de la réponse ;;)
"Il n'y a pas de question idiote, seulement une réponse idiote" ALBERT EINSTEIN (enfin ici on évite). °oO
B
Boisgontierjacques
Membre fidèle
Membre fidèle
Messages : 165
Appréciations reçues : 37
Inscrit le : 5 octobre 2018
Version d'Excel : 2016

Message par Boisgontierjacques » 19 février 2019, 17:31

Bonjour,

Il y a plusieurs façons d'obtenir des entête de ListBox

http://boisgontierjacques.free.fr/pages ... #EnteteCol

Boisgontier
Copie de Forum.xlsm
(255.24 Kio) Téléchargé 3 fois
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message