XL 2010 listbox avec entête

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

  • liste entete.xlsm
    22.2 KB · Affichages: 12

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
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

  • Copie de liste entete.xlsm
    33.9 KB · Affichages: 27

herve62

XLDnaute Barbatruc
Supporter XLD
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: 43
  • exemplist.jpg
    exemplist.jpg
    31.4 KB · Affichages: 35

herve62

XLDnaute Barbatruc
Supporter XLD
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
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
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

  • Copie de liste entete.xlsm
    32.2 KB · Affichages: 24
Dernière édition:

herve62

XLDnaute Barbatruc
Supporter XLD
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

  • liste entete.xlsm
    30.4 KB · Affichages: 8

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
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
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
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

  • Copie de liste entete2.xlsm
    39.7 KB · Affichages: 45
Dernière édition:

herve62

XLDnaute Barbatruc
Supporter XLD
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
 

Discussions similaires

Réponses
25
Affichages
770

Statistiques des forums

Discussions
312 490
Messages
2 088 877
Membres
103 981
dernier inscrit
vinsalcatraz