Suppression de controle dans userform par le code

MartiFab

XLDnaute Nouveau
Bonjour a tous,

Je me retrouve confronte a un petit problème de manipulation des contrôles dans un userform. Notamment, je veux supprimer un contrôle de l'usf lorsque je clique sur un bouton de commande. Par supprimer, j'entends bien éliminer le contrôle de l'userform, non pas simplement le cacher.
J'ai essaye quelques propriétés de type: .Remove ou .Delete mais elles ne marchent pas.

Le fichier exemple ci-joint comporte une usf avec deux Frames.
Dans le Frame1 se trouve un bouton de commande.
Dans le Frame2 se trouvent un label et une textBox.
Je voudrais supprimer le Frame2 lorsque je clique sur le bouton de commande contenu dans Frame1.

Je sais que cela n'a pas beaucoup de sens, il s'agit juste pour moi de comprendre comment supprimer un contrôle et adapter cela a mon projet.

Si quelqu'un passe par la et a une petite idée je lui serais très reconnaissant.

Merci a tous a bientôt !
 

Pièces jointes

  • exMartiFab1210.xls
    33.5 KB · Affichages: 62

tototiti2008

XLDnaute Barbatruc
Re : Suppression de controle dans userform par le code

Bonjour MartiFab,

La solution est Remove, mais ça ne s'applique qu'aux contrôles que tu as créé lors de l'exécution
En clair, les contrôles que tu as "dessiné" avec la Boite à outils ne peuvent pas être supprimés, il faut les créer par code, par exemple à l'initialisation du Userform, pour avoir le droit de les supprimer
 

Pierrot93

XLDnaute Barbatruc
Re : Suppression de controle dans userform par le code

Bonjour MartiFab, Toto:)

En clair, les contrôles que tu as "dessiné" avec la Boite à outils ne peuvent pas être supprimés,

euh..., on doit pouvoir, à condition que l'usf soit déchargé.... et il sera supprimé définitivement si enregistrement du fichier...

bonne journée
@+
 

MartiFab

XLDnaute Nouveau
Re : Suppression de controle dans userform par le code

Bonjour Toto, Pierrot,

Merci pour vos réponses. Je joins un autre fichier en exemple. Il s'agit de ce que je veux réaliser pour mon projet. Dans le premier cadre (1.New Site Details), une seule textbox, la plus a droite est enabled. Elle attend un nombre par ex.4. En cliquant sur le bouton "validate", des contrôles sont créés dans le cadre 2 (2.Sample Points). Jusque la tout va bien.

Mon problème:
Si je rentre a présent un nombre inférieur au précédent dans la textBox du cadre 1 (par ex. 2), je voudrais ramener le nombre de contrôles créés dans cadre 2 a 2 seulement. Hors, les contrôles précédemment créés restent. C'est dans ce but que je souhaitais savoir comment supprimer ces contrôles. Il semblerait que "Remove" ne fonctionne pas non plus.
Peut-être existe-t-il une autre méthode afin de réaliser cela?

Merci a vous
 

Pièces jointes

  • ex2MartiFab1210.xls
    56.5 KB · Affichages: 59
  • ex2MartiFab1210.xls
    56.5 KB · Affichages: 71
  • ex2MartiFab1210.xls
    56.5 KB · Affichages: 60

tototiti2008

XLDnaute Barbatruc
Re : Suppression de controle dans userform par le code

Bonjour Pierrot :)
Re,

@Pierrot : Très intéressé par ta remarque, mais je n'ai pas réussi à l'appliquer

un exemple de fichier où j'ai essayé
La Checkbox est créée par code, je peux la supprimer
La Textbox est créée à la main, pas réussi
 

Pièces jointes

  • Classeur2.xls
    19.5 KB · Affichages: 80
  • Classeur2.xls
    19.5 KB · Affichages: 82
  • Classeur2.xls
    19.5 KB · Affichages: 74

MartiFab

XLDnaute Nouveau
Re : Suppression de controle dans userform par le code

Re,

J'ai réussi, merci a vous. Je joins le fichier "ex2MartiFab1210.xls" qui marche. J'arrive maintenant a supprimer les contrôles. J'avais un problème de syntaxe.

Merci beaucoup pour votre aide
 

Pièces jointes

  • ex2MartiFab1210.xls
    65.5 KB · Affichages: 104
  • ex2MartiFab1210.xls
    65.5 KB · Affichages: 111
  • ex2MartiFab1210.xls
    65.5 KB · Affichages: 108

Pierrot93

XLDnaute Barbatruc
Re : Suppression de controle dans userform par le code

Re,

@toto:)
regarde ceci, à utiliser dans un module standard, l'usf étant déchargé... option "faire confiance au projet visual basic" coché dans les options de sécurité...
Code:
ActiveWorkbook.VBProject.VBComponents("UserForm1").Designer.Controls.Remove "TextBox1"
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 324
Membres
103 179
dernier inscrit
BERSEB50