XL 2016 Remplir listbox avec 11 colonnes

KTM

XLDnaute Impliqué
Bonjour cher Forum
J'aimerais afficher les données de ma table dans mon listbox mais la 11e colonne pause problème
Comment m'y prendre ?
 

Pièces jointes

  • listbox.xlsm
    20.1 KB · Affichages: 22

job75

XLDnaute Barbatruc
Bonjour KTM, JB, Bruno, herve62,
Je voudrais que Le format des dates ( Mois et Echeance ) soit le meme que sur la table
Je m'en suis aperçu c'est pourquoi j'ai supprimé mon 1er message qui utilisait la méthode List..

Il faut alors utiliser en effet la méthode RowSource :
VB:
Private Sub UserForm_Initialize()
With [A1].CurrentRegion
    ListBox2.ColumnCount = .Columns.Count
    If .Rows.Count > 1 Then ListBox2.RowSource = .Rows(2).Resize(.Rows.Count - 1).Address
End With
End Sub
Bon dimanche.
 

KTM

XLDnaute Impliqué
Bonjour KTM, JB, Bruno, herve62,

Je m'en suis aperçu c'est pourquoi j'ai supprimé mon 1er message qui utilisait la méthode List..

Il faut alors utiliser en effet la méthode RowSource :
VB:
Private Sub UserForm_Initialize()
With [A1].CurrentRegion
    ListBox2.ColumnCount = .Columns.Count
    If .Rows.Count > 1 Then ListBox2.RowSource = .Rows(2).Resize(.Rows.Count - 1).Address
End With
End Sub
Bon dimanche.
INFINIMENT MERCI
 

Hervé

XLDnaute Barbatruc
bonjour :)

on pourrait aussi imaginer passer par un tablo ?

VB:
Private Sub UserForm_Initialize()
Dim tablo
With [A1].CurrentRegion
ListBox2.ColumnCount = .Columns.Count
tablo = .Rows(2).Resize(.Rows.Count - 1)
ListBox2.list = tablo
End With
End Sub

a plus
 

patricktoulon

XLDnaute Barbatruc
re
bonjour a tous
plus-de-10-colonnes-dans-une-listebox-sans-utiliser-la-propriete-rowsource

peut être a en tirer profit ? apparemment c'est du rowsource aussi
@herve62 non ben justement ça n'est pas du rowsource il ne faut pas lire en diagonale ;)
d'ailleurs le titre est assez révélateur de l'intention ;)

apres si il s'agit de mettre simplement une plage dans un listbox

VB:
set plage=range(xx:yy)

with listbox1

  .columncount =plage.columns.count

  .value=plage.value

end with
maintenant si tu dois trier avant de mettre dans la listebox et donc te servir de additem la oui l'astuce te sera utile
 
Dernière édition:

VIARD

XLDnaute Impliqué
Bonjour à tous

Pour ma part j'ai ceci avec 25 colonnes.

VB:
For i = 1 To 4
    With ListBox4
        .Font = "tahoma"
        .ColumnHeads = False
        .TextColumn = -1
        .RowSource = "C3:AA" & i + 2
        .MultiSelect = fmMultiSelectMulti
        .ColumnCount = 25
        .ColumnWidths = "23;23;23;23;23;23;23;23;23;23;23;23;23;23;23;23;23;23;23;23;23;23;23;23;23"
        .Height = 42
        .Width = 580
    End With
Next i

juste pour l'exemple.
les autres approches intéressantes.

A+ Jean-Paul
 

patricktoulon

XLDnaute Barbatruc
bonsoir @VIARD , @job75
je pige pas non plus la boucle
ni l'utilisation de rowssource par vba
d'autant plus que le header est false

VB:
Set f = Sheets("tartampion")
    With ListBox4
       ' .Font .name= "tahoma"'????? ca l'est pas deja a l'origine????
         '.TextColumn = -1'??????
        .List = f.[C3:AA6].Value
        .MultiSelect = fmMultiSelectMulti
        .ColumnCount = f.[C3:AA6].Columns.Count
        .ColumnWidths = String(f.[C3:AA6].Columns.Count, "23;" & "0")
        .Height = 42
        .Width = 580
    End With
 

Discussions similaires

Statistiques des forums

Discussions
312 038
Messages
2 084 824
Membres
102 682
dernier inscrit
ing_dupree