XL 2010 listbox avec entête

  • Initiateur de la discussion Initiateur de la discussion herve62
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

herve62

XLDnaute Barbatruc
Supporter XLD
Bonjour
j'ai repris d'un usf le code listbox avec entête pour refaire dans une feuille , mais cela bloque , j'ai pas trouvé sur le web de l'aide ?
 

Pièces jointes

Bonjour,

Une procédure qui affiche les entêtes de colonne d'une ListBox sur un formulaire.


VB:
Dim f, Rng
Private Sub UserForm_Initialize()
  Set f = Sheets("data")
  Set Rng = f.Range("A2:D" & f.[A65000].End(xlUp).Row)
  Me.ListBox1.List = Rng.Value
  Me.ListBox1.ColumnCount = Rng.Columns.Count
  EnteteListBox
End Sub

Sub EnteteListBox()
  x = Me.ListBox1.Left + 8
  Y = Me.ListBox1.Top - 12
  For i = 1 To Rng.Columns.Count
    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
 

Pièces jointes

Re , Slt Jacques
merci , j'étais encore en train de balayer tes exemples , ce que je recherche c'est comme ton exemple mais un listbox SEUL dans une feuille C.a.d retrouver ce style comme mon exemple dans le fichier , là j'ai mis des titres de col. dans des cellules mais c'est pas top !

PS : As tu revu le lycée Gayole à Boulogne .. depuiS ..... ????
 

Pièces jointes

  • entete.jpg
    entete.jpg
    81.2 KB · Affichages: 63
  • exemplist.jpg
    exemplist.jpg
    31.4 KB · Affichages: 50
Je ne veux pas d'affichage d'USF ( ça je sais faire) , la listbox est tracée dans la feuille , juste la remplir (avec des critères que je verrais ensuite)
dans mon code il y avait déjà :
Sheets("base").ListBox1.ColumnWidths = "200;80;80;80"
Sheets("base").ListBox1.ColumnHeads = True
et même coché "true" dans les propriétés mais j'ai des erreurs d'objet ? dans le code
les : With Sheets("base").ListBox1 , .columnHeads, .clear , ne fonctionnent pas
voir fichier du #post1
 
Il ne faut pas que la propriété ListFillRange soit déjà codée en dur

VB:
Sub essai()
  Set f = Sheets("data")
  Set Rng = f.Range("A2:D" & f.[A65000].End(xlUp).Row)
  ActiveWorkbook.Names.Add Name:="Liste", RefersTo:=Rng
  Sheets("base").ListBox1.ColumnHeads = True
  Sheets("base").ListBox1.ListFillRange = "liste"
  Sheets("base").ListBox1.ColumnCount = Rng.Columns.Count
End Sub

Calcul du largeur des colonnes

Code:
Sub LargeurColonnesListBox()
  Set f = Sheets("data")
  Set Rng = f.Range("A2:D" & f.[A65000].End(xlUp).Row)
  Sheets("base").ListBox1.ColumnCount = Rng.Columns.Count
  For i = 1 To Rng.Columns.Count
    x = x + Rng.Columns(i).Width * 1.1
    temp = temp & Rng.Columns(i).Width * 1.1 & ";"
  Next i
  temp = Left(temp, Len(temp) - 1)
  Sheets("base").ListBox1.ColumnWidths = temp
End Sub


L'utilisation des ListBox dans un formulaire est plus simple.


Boisgontier
 

Pièces jointes

Dernière édition:
Bonjour
Merci bien Jacques ,
L'utilisation des ListBox dans un formulaire est plus simple.
oui , je sais car j'ai déjà fait x fois sans Pb , sauf parfois aussi avec les entêtes !!
mais là c'est pour une collecte d'infos dans une feuille avec autre chose que la liste
Je voulais commencer mes modif. mais déjà je n'arrive pas à effacer la liste dans un autre fichier j'avais : sheets("data").list_clients.clear > ok mais là erreur ?
ensuite je dois triturer les données pour afficher une recap. par client soit ici ( voir exemple) 3 lignes ; toi tu as fait un bloc mais là est ce le .ADD ??
 

Pièces jointes

Bonjour,


>Je voulais commencer mes modif. mais déjà je n'arrive pas à effacer la liste dans un autre fichier j'avais : sheets("data").list_clients.clear > ok mais là erreur
-Si on utilise Rowsource ou ListFillRange en dur, on ne peut pas modifier les propriétés du ListBox par programme pour effacer le ListBox ou faire un filtre par exemple.

Boisgontier
 
Dans le fichier joint:


-On n'utilise pas ColumnHeads à True
-Les titres des colonnes du ListBox sont générés par macro.
-Malheureusement, ça ne fonctionne pas complètement
Il faut modifier les Captions des labels manuellement


-La ListBox est alimentée par .List

Boisgontier
 

Pièces jointes

Dernière édition:
Bonsoir
Bon j'ai repris l'original pour insérer dans ce classeur exemple : tout fonctionne
Malheureusement c'est vrai c'est du domaine de l'impossible de greffer des entêtes dans ce style le liste en feuille
Donc je vais garder le "En cours" mettre des étiquettes 'Label' pour regrouper cumul/client
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
418
Retour