Création dynamique de contrôle ?

Alza

XLDnaute Junior
Bonjour !

Je viens chercher vôtre aide car je n'ai pas réussi à trouver sur internet de tuto répondant à ma problématique ..
Pour expliquer rapidement :
J'ai des équipes, que je souhaite rentrer dans des listbox pour faire un visu de mes différentes équipes et de certaines de leur caractéristique.
Problème : je ne sais pas combien il y a d'équipes, je dois donc créer mes listbox dynamiquement, jusque la pas trop compliquer je fais boucler ce morceau de code sur mes équipes :

Code:
Set ctlListbox = Controls.Add("Forms.listbox.1", "lb" + CStr(i) + "Equipe")

On en arrive à mon problème : Comment prendre le contrôle de chaque listbox séparément afin de les remplir ?
Car pour l'instant je ne peux agir que sur ctlListbox et pas sur 1 listbox individuellement ..

Je m'excuse je ne peux pas fournir de fichier avec le code, bien qu’honnêtement pour le moment c'est très vide en dehors de la ligne fournie plus haut et de la boucle !

Merci d'avance pour votre aide,
Alza'
 

job75

XLDnaute Barbatruc
Re,

Juste pour que vous compreniez bien, voyez le fichier joint avec dans le Module de classe :
Code:
Public WithEvents LB As MSForms.ListBox

Private Sub LB_Change()
MsgBox LB 'juste pour tester
End Sub
Et dans Module1 :
Code:
Dim LB() As New Classe1

Sub USF()
Dim nlig&, j%, i&
With Feuil1.[A1].CurrentRegion 'CodeName de la feuille
  nlig = .Rows.Count
  For j = 1 To .Columns.Count
    ReDim Preserve LB(1 To j)
    Set LB(j).LB = UserForm1.Controls.Add("Forms.listbox.1", .Cells(1, j))
    LB(j).LB.Top = 12
    LB(j).LB.Left = 12 + 92 * (j - 1)
    LB(j).LB.Height = 100
    LB(j).LB.Width = 80
    For i = 2 To nlig
      If .Cells(i, j) <> "" Then LB(j).LB.AddItem .Cells(i, j)
  Next i, j
End With
UserForm1.Width = 92 * (j - 1) + 12
UserForm1.Show
End Sub
A+
 

Pièces jointes

  • ListBox créées dynamiquement(1).xlsm
    27.9 KB · Affichages: 29

Discussions similaires

Réponses
6
Affichages
550

Statistiques des forums

Discussions
314 450
Messages
2 109 724
Membres
110 552
dernier inscrit
jasson