Bonjour,
Je tourne en rond sur un problème depuis plusieurs jours. La cause du problème m'est toujours aussi obscure...

J'ai une variable globale Collection qui garde des données. Appelons la stack.
Un bouton de la feuille de calcul (appelons le bouton1) permet de créer 4 données et de les ajouter dans stack. Tout cela marche à merveille.

J'ai voulu ajouter dans la fonction de bouton1 la création dynamique de boutons dans la feuille de calcul comme cela :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 Worksheets("main").OLEObjects.Add ClassType:="Forms.CommandButton.1", _
                                      Left:=2, _
                                      Width:=15, _
                                      Height:=12.5
Et bien l'ajout de cette simple ligne fait purger stack de toutes ses données membres. Il suffit que je commente cette ligne pour que stack marche parfaitement à nouveau !

Si vous voulez voir la chose en code, voici :
Bouton1 appelle la fonction AddTrades.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Sub AddTrades()
  Call AddTrade 'ajout donnée 1
  Call AddTrade 'ajout donnée 2
  Call AddTrade 'ajout donnée 3
  Call AddTrade 'ajout donnée 4
End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub AddTrade()
    Dim newTrade As New Trade
    Set newTrade = CreateTrade()
 
    'Add the new trade to the list of trades
    Dim key As String
    key = stack.Count + 1
    stack.Add Item:=newTrade, key:=key
 
    Worksheets("main").OLEObjects.Add ClassType:="Forms.CommandButton.1", _
                                      Left:=2, _
                                      Width:=15, _
                                      Height:=12.5
End Sub
Toute vague idée est bienvenue !

Merci beaucoup.