Microsoft 365 problème de remplissage de listbox

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 !

azzouziwalid

XLDnaute Nouveau
Bonjour à tous ,
j'ai crée un userform qui contient des textbox et une listbox ,
le problème que lorsque j'ouvre mon userform les données de tableau excel ne se chargent pas dans la listbox .
svp un aide pour s'en sortir de ce problème .
 

Pièces jointes

Hello

pour l'intialize, on ne met pas le nom du Userform, mais simplement "Userform_Initialize"

et pour remplir la listbox avec additem, on ne peut pas mettre plus de 10 colonnes

il faut donc remplir avec la méthode .list

VB:
Private Sub Userform_Initialize()
    Dim ws As Worksheet
    Dim rng As Range
    Dim lastRow As Long
    Dim i As Long
    ' Référence à la feuille contenant le tableau TB
    Set ws = ThisWorkbook.Sheets("Tableau")  ' Remplacez "Sheet1" par le nom de votre feuille
    lastRow = ws.Cells(ws.Rows.Count, "F").End(xlUp).Row ' Dernière ligne du tableau
    ' Définir la plage du tableau (par exemple, colonnes A à D)
    Set rng = ws.Range("F6:U" & lastRow) ' Ajustez selon vos colonnes
    ' Vider la ListBox
    Me.ListBox1.Clear
    ' Configurer le nombre de colonnes dans la ListBox
    Me.ListBox1.ColumnCount = 16 ' Ajustez selon le nombre de colonnes de votre tableau
    Me.ListBox1.ColumnWidths = "50;100;100;100;100;100;100;100;100;100;100;100;100;100;100;100" ' Largeur des colonnes en points
    ' Charger les données dans la ListBox
    Me.ListBox1.List = rng.Value
'    For i = 1 To rng.Rows.Count
'        ListBox1.AddItem
'        ListBox1.List(i - 1, 0) = rng.Cells(i, 1).Value ' Colonne 1
'        ListBox1.List(i - 1, 1) = rng.Cells(i, 2).Value ' Colonne 2
'        ListBox1.List(i - 1, 2) = rng.Cells(i, 3).Value ' Colonne 3
'        ListBox1.List(i - 1, 3) = rng.Cells(i, 4).Value ' Colonne 4
'         ListBox1.List(i - 1, 4) = rng.Cells(i, 5).Value ' Colonne 5
'          ListBox1.List(i - 1, 5) = rng.Cells(i, 6).Value ' Colonne 6
'          ListBox1.List(i - 1, 6) = rng.Cells(i, 7).Value ' Colonne 7
'          ListBox1.List(i - 1, 7) = rng.Cells(i, 8).Value ' Colonne 8
'          ListBox1.List(i - 1, 8) = rng.Cells(i, 9).Value ' Colonne 9
'          ListBox1.List(i - 1, 9) = rng.Cells(i, 10).Value ' Colonne 10
'          ListBox1.List(i - 1, 10) = rng.Cells(i, 11).Value ' Colonne 11
'          ListBox1.List(i - 1, 11) = rng.Cells(i, 12).Value ' Colonne 12
'          ListBox1.List(i - 1, 12) = rng.Cells(i, 13).Value ' Colonne 13
'          ListBox1.List(i - 1, 13) = rng.Cells(i, 14).Value ' Colonne 14
'           ListBox1.List(i - 1, 14) = rng.Cells(i, 15).Value ' Colonne 15
'           ListBox1.List(i - 1, 15) = rng.Cells(i, 16).Value ' Colonne 16
'    Next i
End Sub
 
Hello

pour l'intialize, on ne met pas le nom du Userform, mais simplement "Userform_Initialize"

et pour remplir la listbox avec additem, on ne peut pas mettre plus de 10 colonnes

il faut donc remplir avec la méthode .list

VB:
Private Sub Userform_Initialize()
    Dim ws As Worksheet
    Dim rng As Range
    Dim lastRow As Long
    Dim i As Long
    ' Référence à la feuille contenant le tableau TB
    Set ws = ThisWorkbook.Sheets("Tableau")  ' Remplacez "Sheet1" par le nom de votre feuille
    lastRow = ws.Cells(ws.Rows.Count, "F").End(xlUp).Row ' Dernière ligne du tableau
    ' Définir la plage du tableau (par exemple, colonnes A à D)
    Set rng = ws.Range("F6:U" & lastRow) ' Ajustez selon vos colonnes
    ' Vider la ListBox
    Me.ListBox1.Clear
    ' Configurer le nombre de colonnes dans la ListBox
    Me.ListBox1.ColumnCount = 16 ' Ajustez selon le nombre de colonnes de votre tableau
    Me.ListBox1.ColumnWidths = "50;100;100;100;100;100;100;100;100;100;100;100;100;100;100;100" ' Largeur des colonnes en points
    ' Charger les données dans la ListBox
    Me.ListBox1.List = rng.Value
'    For i = 1 To rng.Rows.Count
'        ListBox1.AddItem
'        ListBox1.List(i - 1, 0) = rng.Cells(i, 1).Value ' Colonne 1
'        ListBox1.List(i - 1, 1) = rng.Cells(i, 2).Value ' Colonne 2
'        ListBox1.List(i - 1, 2) = rng.Cells(i, 3).Value ' Colonne 3
'        ListBox1.List(i - 1, 3) = rng.Cells(i, 4).Value ' Colonne 4
'         ListBox1.List(i - 1, 4) = rng.Cells(i, 5).Value ' Colonne 5
'          ListBox1.List(i - 1, 5) = rng.Cells(i, 6).Value ' Colonne 6
'          ListBox1.List(i - 1, 6) = rng.Cells(i, 7).Value ' Colonne 7
'          ListBox1.List(i - 1, 7) = rng.Cells(i, 8).Value ' Colonne 8
'          ListBox1.List(i - 1, 8) = rng.Cells(i, 9).Value ' Colonne 9
'          ListBox1.List(i - 1, 9) = rng.Cells(i, 10).Value ' Colonne 10
'          ListBox1.List(i - 1, 10) = rng.Cells(i, 11).Value ' Colonne 11
'          ListBox1.List(i - 1, 11) = rng.Cells(i, 12).Value ' Colonne 12
'          ListBox1.List(i - 1, 12) = rng.Cells(i, 13).Value ' Colonne 13
'          ListBox1.List(i - 1, 13) = rng.Cells(i, 14).Value ' Colonne 14
'           ListBox1.List(i - 1, 14) = rng.Cells(i, 15).Value ' Colonne 15
'           ListBox1.List(i - 1, 15) = rng.Cells(i, 16).Value ' Colonne 16
'    Next i
End Sub
merci beaucoup
un autre problème : les scrolbars horizontale et verticale de listbox ne fonctionne pas
 
Bonsoir à tous,

Avec un tableau structuré et une 2ème ListBox pour les en-têtes :
VB:
Private Sub UserForm_Initialize()
    With ListBox1
        .ColumnCount = 17 ' Ajustez selon le nombre de colonnes de votre tableau
        .ColumnWidths = "0;40;60;60;60;60;60;60;60;60;60;60;60;60;60;60;60" ' Largeur des colonnes en points
        .List = [TB].Value 'Tableau structuré
    End With
    With ListBox2
        .ColumnCount = 17
        .ColumnWidths = "0;40;60;60;60;60;60;60;60;60;60;60;60;60;60;60;60"
        .List = [TB].Rows(0).Value 'en-têtes
    End With
End Sub
A+
 

Pièces jointes

Bonjour le forum,

Si l'on veut pouvoir utiliser la barre de défilement horizontale il faut la méthode .RowSource :
VB:
Private Sub UserForm_Initialize()
    With ListBox1
        .ColumnCount = 17 ' Ajustez selon le nombre de colonnes de votre tableau
        .ColumnWidths = "0;50;100;100;100;100;100;100;100;100;100;100;100;100;100;100;100" ' Largeur des colonnes en points
        .ColumnHeads = True
        .RowSource = "TB" 'Tableau structuré
    End With
End Sub
A+
 

Pièces jointes

- 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
196
Réponses
1
Affichages
174
Réponses
16
Affichages
897
Réponses
41
Affichages
581
Retour