Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

ListBox1.ColumnHeads = True

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 !

grisan29

XLDnaute Accro
bonjour a vous tous
pour suite a l'intitulé du post peut'on y ajouter des entètes dans les columnheads
je m'entends
a l'ouverture de l'usf est ce que la 1ere column peu prendre le nom de "référence"
la 2ème "article" etc ... jusque 6 colonnes et peut etre plus pour autrechose

merci de votre compréhension
Pascal
 
Dernière édition:
Re : ListBox1.ColumnHeads = True

Bonjour

Avec l'aide du forum, j'ai pu écrire les macros suivantes:
LV_Init permet d'initialiser la listbox dont on passe la réf en paramètre
LV_Vider efface les données mais pas les entêtes
LV_Remplir remplir la LV avec la liste..

Attention ces codes sont spécifiques à mon application , il faudra les modifier...
VB:
Private Sub LV_Init(ByRef LV As ListView)
  'configuration
  With LV
   .View = lvwReport
   .FullRowSelect = True
   .Gridlines = True
  End With
  'mise en place de l'entete
  With LV.ColumnHeaders
    .Clear
    .Add , , "Index", 30
    .Add , , "Zone", 30
    .Add , , "Valeur", 30
    .Add , , "Cellule", 40
    .Add , , "Feuille", 120
  End With
End Sub

Private Sub LV_Vider(ByRef LV As ListView)
  LV.ListItems.Clear
End Sub

Private Sub LV_Remplir(ByRef LV As ListView, ByRef Liste)
'macro qui remplit les ListeView
Dim nb As Long, i As Long
Dim Num_Zone_Maxi As Integer, Num_Zone_Format As String
Dim Index_Maxi As Integer, Index_Format As String
  With LV
    nb = UBound(Liste)
    'récuperation des formats
    Num_Zone_Maxi = 0
    Index_Maxi = 0
    For i = 1 To nb
      If Liste(i).Num_Zone > Num_Zone_Maxi Then Num_Zone_Maxi = Liste(i).Num_Zone
    Next i
    Index_Maxi = Len(CStr(nb))
    Index_Format = String(Index_Maxi, "0")
    Num_Zone_Maxi = Len(CStr(Num_Zone_Maxi))
    Num_Zone_Format = String(Num_Zone_Maxi, "0")
    'affichage des éléments
    For i = 1 To nb
      .ListItems.Add i, , Format(i, Index_Format)
      .ListItems(i).ListSubItems.Add , , Format(Liste(i).Num_Zone, Num_Zone_Format)
      .ListItems(i).ListSubItems.Add , , Liste(i).Valeur
      .ListItems(i).ListSubItems.Add , , Liste(i).Cellule
      .ListItems(i).ListSubItems.Add , , Liste(i).Folio
    Next i
  End With
End Sub
 
Re : ListBox1.ColumnHeads = True

Bonsoir grisan29, tbft,

Le code donné par tbft concerne en effet une ListView.

Pour afficher les en-têtes de colonnes d'une ListBox, il faut que celles-ci soient celles de la plage qui définit la propriété RowSource.

Si la liste de la ListBox est définie par une autre méthode, on ne peut pas avoir d'en-têtes.

Avec une ListBox on a moins de possibilités qu'avec une ListView.

A+
 
Re : ListBox1.ColumnHeads = True

Bonjour

Je suis passé par une listbox...
Mais je n'arrivais pas à changer les entêtes alors on m'a conseillé de travailler avec les listview...
Du coup, je ne travail plus avec les listbox..
Ceci grâce à l'aide des passionnés de ce forum..
Merci encore

Par contre si tu veux des explications sur mon code n'hésite pas à demander!!!
 
Re : ListBox1.ColumnHeads = True

bonsoir a vous
je n'ai jamais utilisé de listview car c'est plus compliqué qu'une listbox pour un néophythe comme moi
ma listbox est activé a l'ouverture de son usf
cordialement

Pascal
 
Re : ListBox1.ColumnHeads = True

Coucou à vous, et surtout à l'auteur que l'on va tenter d'aider.

ListView; c'est mon pêcher mignon!

Les ListView c'est comme les Maths; ce n'est jamais compliqué que tant que l'on n'a pas compris.
Mais quand on y a goûté, on ne s'en lasse plus!

Pas vrai tbft?

Au demeurant, sans Classeur de Base, on a moins envie d'allez plus loin!

On ne va quand-même pas, en plus, se farcir sa construction!

A toi de jouer, je t'écoute,

Yann
 
Re : ListBox1.ColumnHeads = True

bonsoir a vous tous
je parle pas de vous farcir la construction, mais juste un renseignement
bon je vous joint un fichier, afin que vous comprenez mieux j'y ai mis une listbox et une listview(pour tbft et yann_56) la listbox se charge des données de la feuille mais n'a pas de columnheads active
et la listview rien a en tirer
cordialement
Pascal
 
Dernière édition:
Re : ListBox1.ColumnHeads = True

Bonsoir
J'ai un exemple assez complet d'utilisation d'une ListView là dedans.
Indépendamment de cela c'est un gestionnaire de noms de plage pour Excel 2003 presque mieux que le nouveau qu'ils ont mis dans les 2007 et +
Donc elle se remplira seulement s'il y a des noms de plage dans votre classeur...
Cordialement.
 

Pièces jointes

Re : ListBox1.ColumnHeads = True

bonsoir danreb
sur l'exemple que j'ai joint, il est vrai que j'y ai mis une listview, mais c'est parce que (tbft et yann_56) préfère utiliser une listview, mais personnelement j'utilise une lisbox, sur laquelle je voudrais que les entêtes de colonnes s'affiche.
je ne sais pas a quoi correspond ce que tu m'a envoyer, ne connaissant strictement rien aux listview et mon appli est suffisante avec une listbox, mais je ne critique pas la listview pour ça, si je voulais l'utiliser il faudrais que je refasse tout le travail que j'ai accompli en +de 6 mois avec mes piètres connaissances, c'est déjà une usine a gaz mon appli, mais elle fonctionne, c'était juste un option suppémentaire.
cordialement
Pascal
 
Dernière édition:
Re : ListBox1.ColumnHeads = True

Bonsoir grisan29, aux participants, et à ceux qui passeront par là,

Puisque tu restes sans réponse proprement relatives à l'initialisation d'une ListView; je vais m'y mettre...

Je ne vais certainement pas le faire de la façon traditionnelle écrite dans les livres.
Il y a trop de conventions qui m'énervent!

Tu peux aussi revisiter notre précédent dialogue, et mes divers exemples proposés à ce sujet sur d'autres Fils.

Je n'ai pas la prétention de maitriser totalement l'objet, mais l'envie de te convaincre sur son efficacité.

A juste un peu plus tard, par un exemple de ma pomme.

Amicalement,

Yann
 
Re : ListBox1.ColumnHeads = True

bonjour tous
pour remplir la listbox
Private Sub UserForm_Initialize()
ListBox1.ColumnCount = 6
ListBox1.ColumnHeads = True
ListBox1.RowSource = Range("A2:f" & Cells(Rows.Count, "a").End(xlUp).Row).Address
End Sub

attention la methode RowSource est tres limite de loin preferer .list ou passer par un "tablo"
pour la ListView pas le temps de regarder
 
- 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

B
Réponses
0
Affichages
883
B
C
Réponses
2
Affichages
998
Crack1986
C
B
Réponses
5
Affichages
3 K
bebeours
B
O
Réponses
9
Affichages
3 K
gillesbe
G
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…