Remplissage ListBox

Raph82

XLDnaute Nouveau
Bonjour à tous,

J'ai besoin de votre aide afin de remplir une ListBox d'un userform par des données situées dans l'une de mes feuilles. Après différentes recherches, j'utilise le code suivant :

Private Sub CommandButton1_Click()

Dim feuille As Worksheet
Dim tableau As Variant
Dim Plage As Range

Set feuille = ThisWorkbook.Worksheets(2)
feuille.Activate
Set Plage = feuille.Range("A1").CurrentRegion
tableau = Plage.Value
Achats.ListBox1.RowSource = tableau

Achats.Show

End Sub


Pour information
Achats est mon userform

Ce code fonctionnait très bien au départ mais lorsque je rouvre mon fichier l'affichage change à chaque fois : parfois il manque des colonnes, parfois la listbox est vide.

J'ai donc essayé d'utiliser à la place ce code :

Private Sub Achats_Initialize()
Dim tableau() As Variant

With ThisWorkbook.Worksheets("Demandes")
Set tableau = .Columns("A:H").Value
End With

Achats.ListBox1.List = tableau
End Sub


En utilisant cette macro, l'affichage de la listbox reste toujours vide.

Je n'ai pas trouvé de sujet dans le forum au sujet d'affichage qui change à chaque utilisation du fichier.

Je vous joins mon fichier, sachant que les autres macros fonctionnent et qu'il n'y a que cette partie qui me pose problème.

Merci par avance de votre aide.
 

Pièces jointes

  • Nouvelle demande.xls
    65.5 KB · Affichages: 44
  • Nouvelle demande.xls
    65.5 KB · Affichages: 40
  • Nouvelle demande.xls
    65.5 KB · Affichages: 44

job75

XLDnaute Barbatruc
Re : Remplissage ListBox

Bonjour Raph82, bienvenue sur XLD,

Il faut écrire UserForm_Initialize et pas Achats_Initialize :

Code:
Private Sub UserForm_Initialize()
ListBox1.List = Sheets("Demandes").[A1].CurrentRegion.Value
End Sub
Fichier joint.

A+
 

Pièces jointes

  • Nouvelle demande(1).xls
    55 KB · Affichages: 43

job75

XLDnaute Barbatruc
Re : Remplissage ListBox

Re,

La méthode List ne permet pas d'avoir de (vraies) en-têtes de colonnes.

La méthode RowSource le permet :

Code:
Private Sub UserForm_Initialize()
With Sheets("Demandes")
ListBox1.RowSource = .Range("A2:H" & .Range("A" & .Rows.Count).End(xlUp).Row).Address(External:=True)
End With
End Sub
Fichier (2).

A+
 

Pièces jointes

  • Nouvelle demande(2).xls
    56.5 KB · Affichages: 63

Statistiques des forums

Discussions
312 202
Messages
2 086 177
Membres
103 152
dernier inscrit
Karibu