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

Re

A partir de l'exemple de J-Boisgontier

VB:
Private Sub UserForm_Initialize()
  Set f = Sheets("Feuil1")
  nbcol = f.[A1].CurrentRegion.Columns.Count
  Me.ListBox1.ColumnCount = nbcol
  Set plage = f.[A1].CurrentRegion
  Set plage = plage.Offset(1).Resize(plage.Rows.Count - 1)
  Me.ListBox1.List = plage.Value
  i = 1
  x = 26
  For i = 1 To nbcol
    retour = Me.Controls.Add("Forms.Label.1", "Label" & i, True)
    Me("label" & i).Caption = f.Cells(1, i)
    Me("label" & i).Top = 13
    Me("label" & i).Left = x
    x = x + f.Columns(i).Width * 1.1
    temp = temp & f.Columns(i).Width * 1.1 & ";"
  Next
  Me.ListBox1.ColumnWidths = temp
  Me.ListBox1.Top = 26
  Me.ListBox1.Left = 18
  Me.ListBox1.Height = Me.ListBox1.ListCount * 11
  Me.ListBox1.Width = x - 26
  Application.Wait (Now + TimeValue("00:00:01"))
  Me.Width = Me.ListBox1.Width + 36
  Me.Height = Me.ListBox1.Height + 68
End Sub

Les différents réglages demandent à être peaufiner 😛
La largeur des colonnes de la listbox s'ajuste automatiquement à la largeur des colonnes de la feuille "Feuil1".
Quant à la largeur de l'userform, elle s'ajuste à la largeur de la listbox.

Klin89
 
Dernière édition:
Re : ListBox1.ColumnHeads = True

Re grisan29............ "29" Est-ce de mon voisinage, ou l'âge?

Laetitia, heureux de te croiser, avec bon souvenir de nos échanges. 🙂

Pour ce qui est de la ListView, voici un exemple joint.

(Attention! Après test ne pas enregistrer les modifs apportées au Classeur, ou modifier, en vrac, ses Largeurs de Colonnes)

Il n'est pas exhaustif, car je n'ai pas voulu encombrer. (Juste une pincée de commentaires ajoutée)

On pourrait adapter les dimensions de celle-ci suivant son contenu, et de la même façon celles de l'USF.
Bien autres fonction comme la visualisation des doublons, le tri suivant les valeurs des SubItems...... Et c.

Les possibilités sont immenses quoi qu'en disent les amoureux des ComboBoxes et des ListBoxes. 🙄

Il n'est pas pour rien que Bill l'utilise quand l'on explore un répertoire!!! (Version "Détails" ou "Liste")

Au premier abord, comme au premier ras le bol, cela peut paraître complexe.
(Si j'ai compris, c'est que ce n'est pas vraiment sorcier!!!.... Donc vous aussi le ferez!)

Il n'en demeure pas moins que, par la suite, sa simplicité d'utilisation écrase celle de toute autre méthode.

Amicalement,

Yann
 

Pièces jointes

Re : ListBox1.ColumnHeads = True

bonjour a vous Yann_56 et laetitia et les autres

Laetitia ton code fonctionne bien dans la listbox Merci beaucoup😎

Yann_56 edit
Re grisan29............ "29" Est-ce de mon voisinage
oui finistère
l'exemple de ta listview est intérressant 😎je le garde pour l'instant et essaierai d'en faire bon usage, reste a trouvé comment l'adapter sans bousillé le reste de l'appli.

merci pour vos réponse qui clore le sujet pour l'instant😎

cordialement

Pascal
 
Re : ListBox1.ColumnHeads = True

bonsoir Yann_56
je viens de jeter un oeil sur ta listview(je l'ai récupérer) j'y ai intégrer des données mais oh surprise comment ce fait'il que la listview se charge de donnée en sautant des lignes comme de 1 à100;2à200 etc..
je te joint le fichier en retour afin que tu comprenne bien ce que je veux dire

bon week end

Pascal
 
Re : ListBox1.ColumnHeads = True

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

Je pense que tu t'es trompé d'interlocuteur, ou de Fichier à joindre!

Non seulement il n'y a pas de lignes emplies de 1 à 100, ni de 2 à 200 ( De toute façon je ne pige pas de quoi tu parles)
il n'y a pas, en outre, de ListView dans ton dernier Classeur???

Amicalement,

Yann
 
Re : ListBox1.ColumnHeads = True

bonjour Yann_56
effectivement le fichier est une erreur de ma part, mais j'ai fini par trouvé comment faire sur INI-LITSVIEW.xls que tu a envoyer j'ai modifié le code comme ceci
Code:
Private Sub UserForm_Activate()
Dim SheetBase As Worksheet
UserForm1.Caption = "Sélection d'un article"
'======================================================
Set SheetBase = ThisWorkbook.Sheets("Feuil1")
 
SheetBase.Cells.Columns.AutoFit ' Pour une Largeur cohérente des Colonnes de la Feuille!
 
With UserForm1.ListView1: .View = 3: .Gridlines = True: .FullRowSelect = True: .Sorted = True
    With .ColumnHeaders
        For i = 1 To 10 '"10" étant un nombre forfaitaire de Colonnes renseignées .... On peut l'adapter!
             If SheetBase.Cells(1, i).Value <> "" Then
                .Add , , SheetBase.Cells(1, i).Value, (SheetBase.Columns(i).ColumnWidth * 4) + 18
                 '"4" étant issu des tests (Voire Inches et Points), et "+ 18" un correctif de la même origine.
             End If
        Next i
    End With
 
    For i = 2 To SheetBase.Cells(SheetBase.Rows.Count, 1).End(xlUp).Row
        'On format la valeur sur 3 chiffres
        .ListItems.Add , , Format(SheetBase.Cells(i, 1).Value, "00#")
        For j = 1 To .ColumnHeaders.Count - 1
            If SheetBase.Cells(i, j + 1).Value <> "" Then
               .ListItems(.ListItems.Count).ListSubItems.Add , , SheetBase.Cells(i, j + 1).Value
            Else
               .ListItems(.ListItems.Count).ListSubItems.Add , , "?" 'Ceci pour une suite où Wind n'aime pas le vide!
            End If
        Next j
    Next i
End With
End Sub
et cela marche😎 mais pour une seule feuille et moi sur mon fichier a listbox? il y en a 8 qui sont activer sur un usf par une combobox et le contenu de la feuille apparait dans la listbox chaque fois que la combobox change😕
je pense que c'est ligne qui fait défaut
Set SheetBase = ThisWorkbook.Sheets("Feuil1")

et puis un clic sur une ligne envoie certaines données dans des textbox
Code:
Private Sub ListView1_Click()
Me.TextBox1.Text = Me.ListView1.ListItems(1).ListSubItems(1)
Me.TextBox2.Text = Me.ListView1.ListItems(1).ListSubItems(2)
Me.TextBox3.Text = Me.ListView1.ListItems(1).ListSubItems(5)
End Sub

mais pas de choix un clic et puis fini pas de possibilité de changer de choix
cordialement

Pascal
 
Dernière édition:
Re : ListBox1.ColumnHeads = True

Bonjour grisan, et à ceux qui passeront par ici,

Solidarité régionale oblige 🙂; je vais regarder...

Mais ne compte pas sur moi pour inclure une ListBox; je ne maîtrise pas du tout.

J'ai effectivement en tête une méthode qui pourrait te satisfaire.

Mais comme je suis un gros fainéant,
j'aimerais que tu fournisses un Classeur avec tes 8 ou 4 feuilles emplies de données.
(Des cellules vides ne sont pas gênantes, comme je te l'ai montré dans mon exemple)

Concernant "SheetBase", je pense que la démarche est inutile!
Je préfère de loin "ActiveSheet", puisque qu'étant sélectionnée elle l'est à fortiori.

J'attends ton Fichier, et j'y travaillerai par la suite.

Amicalement,

Yann
 
Re : ListBox1.ColumnHeads = True

bonsoir Yann_56
je prépare un fichier qui ne contient plus de listbox mais une listview comme tu les aimes, mais je ne pourrai l'envoyer qu'en fin de semaine car je ne rentre pas chez moi a moins de contre-ordre.
cordialement

Pascal
 
Re : ListBox1.ColumnHeads = True

bonsoir Yann_56 et le forum

Yann citation:Mais comme je suis un gros fainéant
en réalité je ne le pense pas
donc voici un fichier exemple de 8 feuilles d'articles mais sans les feuilles de facture/devis ;clients; commune; etc soit environ 8feuilles a ne pas apparaitre dans la listview
peut etre qu'une combobox dans laquelle s'afficherai le nom des feuilles d'articles pour sélectionner quelle feuille aura son contenu afficher dans la listview
mais j'ai également mis le contenu des 7 feuilles l'une apres l'autre dans la feuil plomberie
lequel sera mieux ????

si ce que j'ai dit est compréhensible "gast"
cordialement

Pascal
 
Dernière édition:
Re : ListBox1.ColumnHeads = True

Bonsoir Pascal, ainsi qu'à ceux qui passeront par là,

J'accuse réception de ton Classeur.

A cette heure: "S.D.B. + Dodo". Je regarderai demain.

Bonne fin de soirée, ou Bonjour suivant l'heure.

Amicalement, et à suivre,

Yann
 
Re : ListBox1.ColumnHeads = True

bonjour tous 🙂🙂🙂🙂🙂🙂🙂🙂🙂🙂🙂🙂🙂
un exemple avec une combo pour selection feuille
pas trop bosse sur la ListView seulement pour la selection item pour envoyer dans textbox pas une specialiste des ListViews trés jolie mais assez chiant a coder enfin pour moi🙁🙁 je prefere les listboxs plus rapide a charger sur les grosses base de données
 

Pièces jointes

Re : ListBox1.ColumnHeads = True

Bonjour laetitia 🙂, Pascal, et à ceux qui passeront par ici,

laetitia, tu verras à la lecture du code que c'est du plus simplissime!

Pascal a oublié la rigueur qu'il est nécessaire d'avoir dans une base de données.

En conséquence, il me faudrait de rectifier celle-ci, mais ce n'est pas mon job! Donc résultat imparfait!

Les ListBoxes sont je ne doute plus rapides, mais n'ont pas la souplesse de visualisation des ListView.
Et autres possibilités que j'ai démontrées dans mes autres réponses relatives à ce sujet.

Concernant la rapidité du chargement, il y a autre moyen. Mais ce n'est pas de la tarte, et un peu lourd!
A quoi bon compliquer les codes pour gagner 2 à 3 secondes?

Pascal; je te soumets cet exemple.
Construis une base de données avec des Feuilles ayant la même structure, et tout sera facile....
Tu testes pour l'instant, on verra par la suite..........

laetitia, tu peux aussi t'amuser à faire la même chose avec une ListBox et nous le soumettre.

Je suis preneur et avide d'apprendre, comme beaucoup ici.

Amicalement,

Yann
 

Pièces jointes

Re : ListBox1.ColumnHeads = True

Bonsoir,

ListBox contre ListView, ce n'est pas mon propos (à chacun sa tasse de thé) 😉.

Un exemple avec un contrôle "ListBox" pour ceux qui seraient intéressés.
Le sujet n'est pas développé, j'en laisse un peu à grisan29.

@YANN-56, quand tu écris :
laetitia, tu verras à la lecture du code que c'est du plus simplissime!
tu t'adresses à quelqu'une 😀 d'aguerrie !
 

Pièces jointes

Re : ListBox1.ColumnHeads = True

bonsoir a tous
Laetitia = Magnifique ta version a pauffinée😎
yann_56 = également parfait version a pauffinée et surtout reduire largeur usf😎
fo_rum= version listbox impeccable version également a pauffiné😎

je reviens demain pour déclarer le vainqueur pour la listview et felicite fo_rum de sa solution qui mets une listbox en valeur chose que je n'avais pas réussi avant

cordialement a vous

bonne soirée

Pascal
 
- 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…