Remplir une listbox avec une plage de cellules

germinator13

XLDnaute Nouveau
Bonjour,
je sais ya pas plus bête.
Pas d'erreurs dans mon code, mais malgré ça, cela ne fonctionne pas ...
J'ai un userform nommé "Userform_Accueil"
Une listbox nommée "ListBox_Sections"
Ce que je ne comprend pas c'est que si dans la propriété rowsource de ma listbox, je mets A1:A20 par exemple, ça marche.
MAis par programme, je veux mettre A1:A en constante et i variable en fonction du nombre de valeurs présentes dans mon onglet et ça marche PAS.

Question subsidiaire : Comment la zone de liste peut-elle savoir que l'on fait référence à un certain onglet du classeur en refusant la syntaxe "feuil1!A1:A20" ???


Voici mon bout de code :
Private Sub UserForm_Initialize()
'Compte dans l'onglet SECTIONS le nombre de sections
'afin d'initialiser la listbox1 avec la plage des sections

Worksheets("Sections").Select ' je pense que c'est inutile ?

For i = 1 To 50
If Sheets("sections").Cells(i, 3).Value <> "" Then
i = i + 1
Else
i = i - 1
Plage_Liste_Section = "C1: C" & i
Exit For
End If
Next
Userform_Accueil.ListBox_Sections.RowSource = Plage_Liste_Section



Merci pour votre aide précieuse qui me débloquera certainement

Germain
 

Spitnolan08

XLDnaute Barbatruc
Re : Remplir une listbox avec une plage de cellules

Bonsoir,

Afin d'éviter de réinventer le fil à couper le beurre, suivre le lien figurant en bas de ce post, et abandonner la méthode rowsource!...(Même si elle fonctionne et figure parmi les possibilités présentées dans le fil du lien ci dessous, elle ne s'adapte pas à bon nombre de configurations VBA et crée des erreurs : 2 fils récents l'ont démontré...)

Cordialement
 

Banzai64

XLDnaute Accro
Re : Remplir une listbox avec une plage de cellules

Bonsoir
Une idée en passant par :
Menu : Insertion ---> Nom ---> Définir
Tu crées un nom pour ta plage de données ( ex: Plage_Liste_Section)
dans la zone 'Fait référence a:' tapes

=DECALER(Sections!$C$1;;;NBVAL(Sections!$C:$C))

ensuite tu fais ok
et dans la macro : Private Sub UserForm_Initialize()
tu peux supprimer depuis le début jusqu'au Next

Userform_Accueil.ListBox_Sections.RowSource = ["Plage_Liste_Section"]


Désolé je l'utilise : Mea Culpa
 
Dernière édition:

Spitnolan08

XLDnaute Barbatruc
Re : Remplir une listbox avec une plage de cellules

Re,

Bonsoir et merci jeanpierre de me sauver la mise;) Encore vert le papy!:p
Mais germinator a raison. Toutefois ce qui est dit dans le cadre des combo s'applique aux listbox et lycée de Versailles....

Si tu ne parviens pas à adapter reviens.

Maintenant, tu peux aussi t'orienter sur les discussions tout en bas de cette page comme le dit jeanpierre.

Cordialement
 

Spitnolan08

XLDnaute Barbatruc
Re : Remplir une listbox avec une plage de cellules

Bonsoir,

J'aurais plutôt mis (Sans tester) :
Code:
Me.ListBox_Sections.AddItem Sheets("sections").Cells(i, 3).Value
Mais ta formulation me semble bonne...
Si tu poses la question c'est que ça ne marche pas ?

Cordialement
 

germinator13

XLDnaute Nouveau
Re : Remplir une listbox avec une plage de cellules

Exact, ça ne fonctionne pas, même avec ta syntaxe.
Pourtant quand je regarde en mode espion, il y a bien une valeur dans la cellule de la feuille en question???

Mon user form s'appelle bien Userform_Accueil
et ma listbox :ListBox_Sections

RRRRRRRRRRRRRRRR
 

germinator13

XLDnaute Nouveau
Re : Remplir une listbox avec une plage de cellules

Bon alors ça marche, c'est juste qu'il fallait que j'affiche ma userform JUSTE après avoir chargé ma listbox avec la méthode addItem.

Cela veut-il dire que les chargements de données doivent se faire JUSTE avnat l'affichage de la userform via la méthode show ?

Question subsidiaire : Pour afficher une 2ème userform, faut-il "décharger" via unload la première userform ?
Merci pour ton aide
 

Spitnolan08

XLDnaute Barbatruc
Re : Remplir une listbox avec une plage de cellules

Re,
Cela veut-il dire que les chargements de données doivent se faire JUSTE avnat l'affichage de la userform via la méthode show ?
Je ne comprends pas...
Question subsidiaire : Pour afficher une 2ème userform, faut-il "décharger" via unload la première userform ?
Non pas nécessairement. il faut passer les UF en non modal.

Mais pour éviter de tourner en rond il serait préférable que tu joignes un fichier avec ton code.

Cordialement
 

germinator13

XLDnaute Nouveau
Re : Remplir une listbox avec une plage de cellules

Voici mon fichier :
le problème, c'est que por appeler ma première userform, j'utilise dans un module une SUB "principale".
Dans ce module mais à l'extérieur de la sub, je déclare une variable MotDePasse qui me sert de controle du mot de passe et doit etre controlé lorsque je click sur OK dans userform_Accueil.

Mais dans la SUB CommandButton1_Click, ma variable n'est pas visible.

Merci de m'aider à démarrer ce projet pour mon association.
 

Pièces jointes

  • mon module ne marche pas.xls
    44.5 KB · Affichages: 381

Discussions similaires

Réponses
3
Affichages
580

Statistiques des forums

Discussions
312 368
Messages
2 087 655
Membres
103 630
dernier inscrit
Azashoriu