OVH Cloud OVH Cloud

Protection et bouton radio

5 réponses
Avatar
sjlouis
Bonjour à tous,

J'ai déjà posé une question similaire avec les boutons et la solution de
TakeFocusOnClick à "false" m'a été donnée. Or j'ai le même problème avec les
boutons radio (OptionButton) pour lesquels cette propriété n'existe pas.

Manupulation effectuée : je choisis une option, puis je clique sur le bouton
et paf! Erreur 1004, "La méthode Unprotect de la classe WorkShette a échoué".

J'ai donc créé du code "Range("toto").select" pour déplacer le focus et là
ça marche, mais ça me paraît un peu lourd s'il faut créer ce type de code
pour chaque OptionButton.

Merci
Jean-Louis

5 réponses

Avatar
papou
Bonjour
Je doute que ton erreur soit due à ton contrôle, peux-tu nous transmettre le
code que tu utilises ?
Cordialement
Pascal

"sjlouis" a écrit dans le message de
news:
Bonjour à tous,

J'ai déjà posé une question similaire avec les boutons et la solution de
TakeFocusOnClick à "false" m'a été donnée. Or j'ai le même problème avec
les
boutons radio (OptionButton) pour lesquels cette propriété n'existe pas.

Manupulation effectuée : je choisis une option, puis je clique sur le
bouton
et paf! Erreur 1004, "La méthode Unprotect de la classe WorkShette a
échoué".

J'ai donc créé du code "Range("toto").select" pour déplacer le focus et

ça marche, mais ça me paraît un peu lourd s'il faut créer ce type de code
pour chaque OptionButton.

Merci
Jean-Louis




Avatar
sjlouis
Merci Pascal de me répondre à nouveau,

Dans le code de mon bouton (CommandButton), j'utilise l'instruction
"ActiveSheet.Unprotect". En fait, elle est dans une procédure, ce qui me
permet d'utiliser la même instruction partout. La première fois, ça plantait
et tu m'as dit de mettre la propriété TakeFocusOnClick à False et cela
fonctionnait. Par contre si je clique juste avant sur un bouton radio
OptionButton, le focus reste sur le bouton radio et j'ai le message d'erreur
1004 "La méthode Unprotect...".

Comme j'ai pensé que cela devait être le même problème que pour le bouton,
dans le code de l'OptionBouton, j'ai déplacé le focus Range("toto").Select et
ça marche. Ce serait d'ailleurs peut-être plus sioux de le mettre dans le
code du bouton avant de désactiver la protection.

Voilà.
Jean-Louis
Avatar
papou
Re
J'ai du mal à comprendre ce que tu veux faire.
Mais je confirme que la raison de ton erreur n'est certainement pas liée au
focus sur ton bouton d'option.
Si tu contourne l'erreur avec la sélection préalable d'une plage c'est qu'il
doit y avoir dans ton code un autre problème.
Cordialement
Pascal

"sjlouis" a écrit dans le message de
news:
Merci Pascal de me répondre à nouveau,

Dans le code de mon bouton (CommandButton), j'utilise l'instruction
"ActiveSheet.Unprotect". En fait, elle est dans une procédure, ce qui me
permet d'utiliser la même instruction partout. La première fois, ça
plantait
et tu m'as dit de mettre la propriété TakeFocusOnClick à False et cela
fonctionnait. Par contre si je clique juste avant sur un bouton radio
OptionButton, le focus reste sur le bouton radio et j'ai le message
d'erreur
1004 "La méthode Unprotect...".

Comme j'ai pensé que cela devait être le même problème que pour le bouton,
dans le code de l'OptionBouton, j'ai déplacé le focus Range("toto").Select
et
ça marche. Ce serait d'ailleurs peut-être plus sioux de le mettre dans le
code du bouton avant de désactiver la protection.

Voilà.
Jean-Louis


Avatar
sjlouis
Re,

La première ligne de code, c'est :

Private Sub CBManche1_Click()
Suppr_Protection
...
End Sub

Sub Suppr_Protection()
ActiveSheet.Unprotect
End Sub

Si je ne clique pas sur l'option avant de cliquer sur le bouton, ça
fonctionne. Si je clique dessus, le focus reste sur l'option et ça plante.
Pour moi, il y a une certaine logique puisque ça faisait la même chose avec
le focus sur le bouton alors qu'en indiquant False à TakeFocusOnClick, ça
fonctionne.

Il n'y a pas de code pour l'OptionButton et je peux enlever tout le code de
la procédure Sub CBManche1_Click() mais je serais étonné que cela change.

A+ et merci
Jean-Louis
Avatar
papou
S'agit-il d'un bouton d'option de la BO Contrôles ou de la BO Formulaires ?
Quelle est ta version d'Excel ?
(Sur un Excel 2003 dans une situation identique il n'y a aucun problème)

Cordialement
Pascal

"sjlouis" a écrit dans le message de
news:
Re,

La première ligne de code, c'est :

Private Sub CBManche1_Click()
Suppr_Protection
...
End Sub

Sub Suppr_Protection()
ActiveSheet.Unprotect
End Sub

Si je ne clique pas sur l'option avant de cliquer sur le bouton, ça
fonctionne. Si je clique dessus, le focus reste sur l'option et ça plante.
Pour moi, il y a une certaine logique puisque ça faisait la même chose
avec
le focus sur le bouton alors qu'en indiquant False à TakeFocusOnClick, ça
fonctionne.

Il n'y a pas de code pour l'OptionButton et je peux enlever tout le code
de
la procédure Sub CBManche1_Click() mais je serais étonné que cela change.

A+ et merci
Jean-Louis