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

Remplissage ListBox

  • Initiateur de la discussion Initiateur de la discussion Raph82
  • Date de début Date de début

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 !

R

Raph82

Guest
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

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

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

- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
661
Réponses
7
Affichages
454
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…