Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

(VBA) supprimer des checkbox dans un UserForm

8 réponses
Avatar
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 ?

8 réponses

Avatar
FFO
Salut à toi

As tu essayé avec ceci :

CheckBox1.Visible = True
CheckBox1.Visible = False

Celà devrais faire

Dis moi !!!!!
Avatar
unptitpas
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 !!!!!



Avatar
FFO
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
Avatar
Modeste
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
Avatar
unptitpas
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





Avatar
isabelle
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 ?



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

Qu'en penses tu ??????
Avatar
papou
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" a écrit dans le message de
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 ?