(VBA) supprimer des checkbox dans un UserForm

Le
unptitpas
Bonjour,
il y a des CheckBox dans un Userform que je voudrais supprimer (par VBA).
Impossible de trouver la bonne commande avec la méthode Remove. Dans une
boucle,
UserFormNom.Controls(i).Remove
me donne un message d'erreur "propriété ou méthode non gérée par cet objet"
Pouvez-vous m'aider ?
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
FFO
Le #20291611
Salut à toi

As tu essayé avec ceci :

CheckBox1.Visible = True
CheckBox1.Visible = False

Celà devrais faire

Dis moi !!!!!
unptitpas
Le #20291881
c'est effectivement une solution de repli, mais ça suppose que j'ai placé
dans le UserForm un nombre préalable de checkbox que j'affiche ou non avec la
commande que tu proposes. Mais ce nombre n'est jamais le même en fonction de
ce que la macro analyse. C'est pour cela que j'aurais voulu, à chaque
exécution de la macro, supprimer toutes les checkbox présentes et recréer par
programme le nombre adéquat.

"FFO" a écrit :

Salut à toi

As tu essayé avec ceci :

CheckBox1.Visible = True
CheckBox1.Visible = False

Celà devrais faire

Dis moi !!!!!



FFO
Le #20292451
Rebonjour à toi

ce code s'adapte au nombre aléatoire de CheckBox :

Pour afficher

For i = 1 To ActiveSheet.OLEObjects.Count
ActiveSheet.OLEObjects(i).Visible = True
Next

Pour désafficher

For i = 1 To ActiveSheet.OLEObjects.Count
ActiveSheet.OLEObjects(i).Visible = False
Next

Celà devrait te convenir !!!!!

Dis moi
Modeste
Le #20292541
Bonsour® FFO avec ferveur ;o))) vous nous disiez :


ce code s'adapte au nombre aléatoire de CheckBox :
Pour afficher
For i = 1 To ActiveSheet.OLEObjects.Count
ActiveSheet.OLEObjects(i).Visible = True
Next
Pour désafficher
For i = 1 To ActiveSheet.OLEObjects.Count
ActiveSheet.OLEObjects(i).Visible = False
Next
Celà devrait te convenir !!!!!



tsssss..... tsssss....
cela va s'appliquer à tout les OleObjects...
;o))) y compris les combos, spinners, optionButtons
unptitpas
Le #20292971
Oui, j'ai notamment deux boutons de commande, un pour valider, l'autre pour
annuler.

"Modeste" a écrit :

Bonsour® FFO avec ferveur ;o))) vous nous disiez :

>
> ce code s'adapte au nombre aléatoire de CheckBox :
> Pour afficher
> For i = 1 To ActiveSheet.OLEObjects.Count
> ActiveSheet.OLEObjects(i).Visible = True
> Next
> Pour désafficher
> For i = 1 To ActiveSheet.OLEObjects.Count
> ActiveSheet.OLEObjects(i).Visible = False
> Next
> Celà devrait te convenir !!!!!

tsssss..... tsssss....
cela va s'appliquer à tout les OleObjects...
;o))) y compris les combos, spinners, optionButtons





isabelle
Le #20293131
bonjour,

Private Sub CommandButton1_Click()
Dim ctrl As Control
For Each ctrl In Me.Controls
If ctrl.Name Like "CheckBox*" Then ctrl.Visible = False
Next
End Sub


isabelle




unptitpas a écrit :
Bonjour,
il y a des CheckBox dans un Userform que je voudrais supprimer (par VBA).
Impossible de trouver la bonne commande avec la méthode Remove. Dans une
boucle,
UserFormNom.Controls(i).Remove
me donne un message d'erreur "propriété ou méthode non gérée par cet objet"
Pouvez-vous m'aider ?



FFO
Le #20293831
Salut Modest
C'est impeccable si çà nettoie tout non ?????
Au moins un fichier nickel !!!!!!

Qu'en penses tu ??????
papou
Le #20297801
Bonjour
En complément des réponses apportées :
La méthode Remove ne s'applique qu'aux contrôles créés au moment de
l'éxécution du code, et non pas au moment de la conception.
La syntaxe est : UserFormNom.Controls.Remove "CheckBox1"
Donc si tu créés tes checkboxes à l'initialisation de ton formulaire par
exemple, alors tu peux utiliser cette méthode.
Sinon, il faut regarder du côté de la propriété visible.

Cordialement
Pascal

"unptitpas" news:
Bonjour,
il y a des CheckBox dans un Userform que je voudrais supprimer (par VBA).
Impossible de trouver la bonne commande avec la méthode Remove. Dans une
boucle,
UserFormNom.Controls(i).Remove
me donne un message d'erreur "propriété ou méthode non gérée par cet
objet"
Pouvez-vous m'aider ?


Publicité
Poster une réponse
Anonyme