MaCollection.Count reste à 1 malgré l'ajout par MaCollection.Add de différents objets
Bonjour,
VBA pour EXcel : dans une Userform j'ai une liste multi sélection. A chaque fois que je sélectionne un élément je crée dynamiquement une frame et quand je le désélectionne, je voudrais que la frame correspondante soit détruite.
dans les codes donnés, j'ai été à l'essentiel avec des noms que j'espère explicites
dans ma Userform
Code:
1 2 3 4 5 6
| dim MaCollectionFrame as Collection
Private MaListe_Change
If MaListe.Selected(MaListe.ListIndex) = true then
Call CréationFrame
else Call EffaceFrame
end if |
dans ma SubCréationFrame
Code:
1 2 3 4 5 6 7 8 9
| dim NouveauFrame as Controle
Set MaCollectionFrame = New Collection
set NouveauFrame = Me.Controles.Add("Forms.Frame.1")
With NouveauFrame
- top
- height.....
. tag = MaListe.List(MaListe.LIstIndex, 0)
end with
MaCollectionFrame.add NouveauFrame, NouveauFrame.TAg |
Différentes frames apparaissent bien au fur et à mesure de la sélection de lignes.
sauf que MaCollectionFrame ne contient que le dernier. MaCollectionFrame.Count reste à 1
Ce qui fait que quand on veut un supprimer un, en fait on ne peut que supprimer le dernier sinon on obtient un "tourne en rond"....:roll:
Il doit y avoir une marche que j'ai manquée
Question subsidiaire : dans ma frame, sont contenus 60 controles Label, une combobox, des textbox etc. Certains contrôles sont des objets de collection car je veux pourvoir leur donner un comportement particulier. Quand j'arriverais à supprimer ma frame avec le code Me.Controls.Remove(CTL), faudra-t-il que je précise set objetDansMaFrame = Nothing ou pas
Merci pour votre aide
Boisselière