Bonjour,

J'essaie de créer des contrôles de façon dynamique. En cliquant sur un bouton "Ajouter", je crée un nouveau bouton (bouton1) dans ma Userform et l'ajoute à une classe (classe1). Ainsi, tous les boutons de cette classe permettront d'ouvrir une deuxième Userform.

Le problème : si je clique plusieurs fois d'affilée sur le bouton "Ajouter", cela me crée disons 4 boutons (bouton 1, 2, 3 et 4) mais lorsque je clique ensuite sur ces boutons, il n'y a que le dernier qui s'ouvre sur ma deuxième Userform.

Lorsque le code du bouton "Ajouter" crée mon bouton, il met ce controle dans un objet ObjBouton et ajoute cet ObjBouton dans classe1. Du coup, j'ai l'impression qu'il remplace les boutons ajoutés précédemment par le dernier bouton créé, donc que ma classe1 ne contient que le dernier bouton créé.

Comment éviter ce problème? Merci d'avance pour vos réponses.


Il a fallu que je poste cette demande pour en trouver la solution... Mon problème était simplement que je ne pouvais pas incrémenter le nom de mon ObjBouton pour qu'à l'ajout de chaque nouveau Bouton, celui-ci ne remplace pas les anciens dans "ObjBouton" pour le rajouter dans ma classe1.
En fait, je n'ai qu'à utiliser :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
For Each Ctrl In UserForm1.Frame1.Controls
If TypeName(Ctrl) = "CommandButton" Then
    Set Cl1 = New Classe1
    Set Cl1.CmdButton = Ctrl
    Collect.Add Cl1
End If
Next
pour que tous mes boutons fassent partie de la classe 1.

Je ne pensais pas que la solution était aussi simple...

Stephanie