OVH Cloud OVH Cloud

rendre inactif le menu "Outils/Options..." dans Excel

42 réponses
Avatar
JPhL
La question se trouve dans le sujet... Est-t-il possible=20
de rendre inactif le menu "Outils/Options..." dans Excel=20
afin qu'un utilisatuer autre que le r=E9alisateur du=20
classeur Excel ne puisse modifier quoi que se soit dans=20
ce menu ?

merci d'avance pour vos r=E9ponses ;

JPhL

10 réponses

1 2 3 4 5
Avatar
Nicolas B.
Et pour le raccourci clavier : ALT + F11 pour ouvrir VBE. Tu pourras
alors exécuter la macro à partir de là.


Ou encore plus simple : ALT + F8, si tu as pensé, avant de bloquer le menu,
à créer la macro pour remettre tout en ordre.


--
Nicolas B.


Salut,

D'après la liste générée par la macro de LL, l'ID est 30017 (pour le
sous-menu "Macro") et 186 pour la commande "Macros...".

Et pour le raccourci clavier : ALT + F11 pour ouvrir VBE. Tu pourras
alors exécuter la macro à partir de là.


A+
--
Nicolas B.


Alors là, pour les réponses de Nicolas et jps, ca dépasse
mon seuil de compétence... Ou ça atteint mon seuil
d'incompétence... A vous de choisir ;-) Mais, je ne
demande qu'à comprendre...

Disons que :

Application.CommandBars("Tools").FindControl
(ID:R2).Enabled = False

rend inactif l'onglets "Options" du menu "outils".
Remplacer "false" par "true" rétablit l'onglet. Je
voudrais en faire autant avec l'onglet "Macros" et je
pense qu'une macro du style :

Application.CommandBars("Tools").FindControl
(ID:=xxx).Enabled = False, avec un nombre qui remplace
les "xxx" devrait marcher... Est-ce que je me trompe. Si
non, quoi mettre à la place des "xxx" ? Ensuite,
opération inverse grâce à un raccourci de clavier... Pour
cause, l'accès à l'onglet macro serait impossible...
Possible ?

merci encore pour vos réponses.

JPhL


-----Message d'origine-----
bonjour nicolas
ben figure toi que je les avais bien (As Integer) mais en dehors du
module....
merci pour moi et pour JPhL...
quant à toi, tu as gagné ta place à saulieu....
jps


Nicolas B. a écrit:
Salut jps,

Il faut déclarer les variables I et J au début du module.


A+


.







Avatar
sabatier
alors la prochaine fois, il faudra envisager le pays du cassoulet et de
nougaro, nicolas...
jps

Nicolas B. a écrit:
quant à toi, tu as gagné ta place à saulieu....



Malheureusement Saulieu, c'est un peu loin de Toulouse pour y passer un
week-end, surtout quand on est à 15 jours des premières épreuves du bac :-(





Avatar
sabatier
oui, tu as misé juste, nicolas
j'avais, par je ne sais quel hasard I = 0 et (ce qui est juste) J = 1 ;
j'ai donc créé un I = 1 mais voilà-t-y pas que je bogue maintenant sur

For Each Ctrl In CmdB.Controls

avec une erreur d'exécution : la méthode "Controls" de l'objet
"CommandBarPopup" a échoué....

mais qu'est ce qu'il a fichu encore ce charlot de LL? l'a pas testé, je
suis certain, sûr de lui comme il était ce lâcheur...
jps

Nicolas B. a écrit:
Qu'est-ce que tu as comme valeurs de I et J quand ça plante ?

Si les valeurs sont 1 et 1, alors l'erreur ne vient pas de ces variables.




Avatar
sabatier
boudi, tu as pu la faire marcher la proc à LL, nicolas?????
jps (ko pour le compte)

Nicolas B. a écrit:
Salut,

D'après la liste générée par la macro de LL, l'ID est 30017 (pour le
sous-menu "Macro") et 186 pour la commande "Macros...".

Et pour le raccourci clavier : ALT + F11 pour ouvrir VBE. Tu pourras alors
exécuter la macro à partir de là.


A+


Avatar
ru-th
re-
http://support.microsoft.com/default.aspx?scid=kb;EN-US;213552

a+
rural thierry
a écrit dans le message de news:
18b7401c420d5$2ae35180$
Alors là, pour les réponses de Nicolas et jps, ca dépasse
mon seuil de compétence... Ou ça atteint mon seuil
d'incompétence... A vous de choisir ;-) Mais, je ne
demande qu'à comprendre...

Disons que :

Application.CommandBars("Tools").FindControl
(ID:R2).Enabled = False

rend inactif l'onglets "Options" du menu "outils".
Remplacer "false" par "true" rétablit l'onglet. Je
voudrais en faire autant avec l'onglet "Macros" et je
pense qu'une macro du style :

Application.CommandBars("Tools").FindControl
(ID:=xxx).Enabled = False, avec un nombre qui remplace
les "xxx" devrait marcher... Est-ce que je me trompe. Si
non, quoi mettre à la place des "xxx" ? Ensuite,
opération inverse grâce à un raccourci de clavier... Pour
cause, l'accès à l'onglet macro serait impossible...
Possible ?

merci encore pour vos réponses.

JPhL


-----Message d'origine-----
bonjour nicolas
ben figure toi que je les avais bien (As Integer) mais
en dehors du

module....
merci pour moi et pour JPhL...
quant à toi, tu as gagné ta place à saulieu....
jps


Nicolas B. a écrit:
Salut jps,

Il faut déclarer les variables I et J au début du
module.




A+


.




Avatar
sabatier
merci, thierry, ça marche nettement mieux que la proc de LL : avec toi,
y a plus qu'à cliquer "imprimer"...
jps

ru-th a écrit:
re-
http://support.microsoft.com/default.aspx?scid=kb;EN-US;213552

a+
rural thierry
a écrit dans le message de news:
18b7401c420d5$2ae35180$
Alors là, pour les réponses de Nicolas et jps, ca dépasse
mon seuil de compétence... Ou ça atteint mon seuil
d'incompétence... A vous de choisir ;-) Mais, je ne
demande qu'à comprendre...

Disons que :

Application.CommandBars("Tools").FindControl
(ID:R2).Enabled = False

rend inactif l'onglets "Options" du menu "outils".
Remplacer "false" par "true" rétablit l'onglet. Je
voudrais en faire autant avec l'onglet "Macros" et je
pense qu'une macro du style :

Application.CommandBars("Tools").FindControl
(ID:=xxx).Enabled = False, avec un nombre qui remplace
les "xxx" devrait marcher... Est-ce que je me trompe. Si
non, quoi mettre à la place des "xxx" ? Ensuite,
opération inverse grâce à un raccourci de clavier... Pour
cause, l'accès à l'onglet macro serait impossible...
Possible ?

merci encore pour vos réponses.

JPhL



-----Message d'origine-----
bonjour nicolas
ben figure toi que je les avais bien (As Integer) mais


en dehors du

module....
merci pour moi et pour JPhL...
quant à toi, tu as gagné ta place à saulieu....
jps


Nicolas B. a écrit:

Salut jps,

Il faut déclarer les variables I et J au début du


module.



A+


.









Avatar
Merci à tous pour vos réponses qui m'ont été très
instructive. Par contre, petit pb encore :
Quand j'applque ces macros :

"application.commandbars("Tools").findcontrol
(id:R2).enabledúlse" pour les options et avec
l'id:0017, pour les macros, cela me désactive bien ce
que je veux, mais sur l'ensemble des classeurs Excel.
Même si celui avec lequel j'ai créé les macros est
fermé ! Même si aucun classeur n'est ouvert ! Moi, ce que
je voudrais, si c'est possible, c'est que cela ne
s'applique qu'au classeur concerné pour que, quand
qlqu'un se sert de mon classeur (classeur qui permet de
gérer informatiquement résultats et classements d'une
compétition de Gym...), qu'il n'aille pas bidouiller dans
les macros et autres liens pour que mon truc ne
fonctionne plus ensuite... Vous voyez ce que je veux
dire ?


-----Message d'origine-----
oui, tu as misé juste, nicolas
j'avais, par je ne sais quel hasard I = 0 et (ce qui est
juste) J = 1 ;

j'ai donc créé un I = 1 mais voilà-t-y pas que je bogue
maintenant sur


For Each Ctrl In CmdB.Controls

avec une erreur d'exécution : la méthode "Controls" de
l'objet

"CommandBarPopup" a échoué....

mais qu'est ce qu'il a fichu encore ce charlot de LL?
l'a pas testé, je

suis certain, sûr de lui comme il était ce lâcheur...
jps

Nicolas B. a écrit:
Qu'est-ce que tu as comme valeurs de I et J quand ça
plante ?



Si les valeurs sont 1 et 1, alors l'erreur ne vient
pas de ces variables.






.




Avatar
JPhL
L'anonyme, c'est moi... J'oublie tjs de m'identifier...


-----Message d'origine-----
Merci à tous pour vos réponses qui m'ont été très
instructive. Par contre, petit pb encore :
Quand j'applque ces macros :

"application.commandbars("Tools").findcontrol
(id:R2).enabledúlse" pour les options et avec
l'id:0017, pour les macros, cela me désactive bien ce
que je veux, mais sur l'ensemble des classeurs Excel.
Même si celui avec lequel j'ai créé les macros est
fermé ! Même si aucun classeur n'est ouvert ! Moi, ce
que

je voudrais, si c'est possible, c'est que cela ne
s'applique qu'au classeur concerné pour que, quand
qlqu'un se sert de mon classeur (classeur qui permet de
gérer informatiquement résultats et classements d'une
compétition de Gym...), qu'il n'aille pas bidouiller
dans

les macros et autres liens pour que mon truc ne
fonctionne plus ensuite... Vous voyez ce que je veux
dire ?


-----Message d'origine-----
oui, tu as misé juste, nicolas
j'avais, par je ne sais quel hasard I = 0 et (ce qui
est


juste) J = 1 ;
j'ai donc créé un I = 1 mais voilà-t-y pas que je bogue
maintenant sur


For Each Ctrl In CmdB.Controls

avec une erreur d'exécution : la méthode "Controls" de
l'objet

"CommandBarPopup" a échoué....

mais qu'est ce qu'il a fichu encore ce charlot de LL?
l'a pas testé, je

suis certain, sûr de lui comme il était ce lâcheur...
jps

Nicolas B. a écrit:
Qu'est-ce que tu as comme valeurs de I et J quand ça
plante ?



Si les valeurs sont 1 et 1, alors l'erreur ne vient
pas de ces variables.






.

.






Avatar
sabatier
bonjour annnymous
c'est parce que ta macro n'a pas été écrite dans le module du classeur
qui t'intéresse mais dans le classeur de macros personnelles (alias
perso.xls)...vire-la de là et mets-la dans "ce classeur"...
verstanden?
jps

a écrit:
Merci à tous pour vos réponses qui m'ont été très
instructive. Par contre, petit pb encore :
Quand j'applque ces macros :

"application.commandbars("Tools").findcontrol
(id:R2).enabledúlse" pour les options et avec
l'id:0017, pour les macros, cela me désactive bien ce
que je veux, mais sur l'ensemble des classeurs Excel.
Même si celui avec lequel j'ai créé les macros est
fermé ! Même si aucun classeur n'est ouvert ! Moi, ce que
je voudrais, si c'est possible, c'est que cela ne
s'applique qu'au classeur concerné pour que, quand
qlqu'un se sert de mon classeur (classeur qui permet de
gérer informatiquement résultats et classements d'une
compétition de Gym...), qu'il n'aille pas bidouiller dans
les macros et autres liens pour que mon truc ne
fonctionne plus ensuite... Vous voyez ce que je veux
dire ?



-----Message d'origine-----
oui, tu as misé juste, nicolas
j'avais, par je ne sais quel hasard I = 0 et (ce qui est


juste) J = 1 ;

j'ai donc créé un I = 1 mais voilà-t-y pas que je bogue


maintenant sur

For Each Ctrl In CmdB.Controls

avec une erreur d'exécution : la méthode "Controls" de


l'objet

"CommandBarPopup" a échoué....

mais qu'est ce qu'il a fichu encore ce charlot de LL?


l'a pas testé, je

suis certain, sûr de lui comme il était ce lâcheur...
jps

Nicolas B. a écrit:

Qu'est-ce que tu as comme valeurs de I et J quand ça


plante ?


Si les valeurs sont 1 et 1, alors l'erreur ne vient


pas de ces variables.



.








Avatar
ru-th
re-

à l'ouverture du classeur
Private Sub Workbook_Open()
application.commandbars("Tools").findcontrol(id:R2).enabledúlse
End Sub

à la fermeture
Private Sub Workbook_BeforeClose(Cancel As Boolean)
application.commandbars("Tools").findcontrol(id:R2).enabled=true
End Sub
on peut jouer aussi avec les évenemente activate et desactivate du module
ThisWorkbook
a+
rural thierry

"JPhL" a écrit dans le message de
news: 1bcd201c42148$c8f1aca0$
L'anonyme, c'est moi... J'oublie tjs de m'identifier...


-----Message d'origine-----
Merci à tous pour vos réponses qui m'ont été très
instructive. Par contre, petit pb encore :
Quand j'applque ces macros :

"application.commandbars("Tools").findcontrol
(id:R2).enabledúlse" pour les options et avec
l'id:0017, pour les macros, cela me désactive bien ce
que je veux, mais sur l'ensemble des classeurs Excel.
Même si celui avec lequel j'ai créé les macros est
fermé ! Même si aucun classeur n'est ouvert ! Moi, ce
que

je voudrais, si c'est possible, c'est que cela ne
s'applique qu'au classeur concerné pour que, quand
qlqu'un se sert de mon classeur (classeur qui permet de
gérer informatiquement résultats et classements d'une
compétition de Gym...), qu'il n'aille pas bidouiller
dans

les macros et autres liens pour que mon truc ne
fonctionne plus ensuite... Vous voyez ce que je veux
dire ?


-----Message d'origine-----
oui, tu as misé juste, nicolas
j'avais, par je ne sais quel hasard I = 0 et (ce qui
est


juste) J = 1 ;
j'ai donc créé un I = 1 mais voilà-t-y pas que je bogue
maintenant sur


For Each Ctrl In CmdB.Controls

avec une erreur d'exécution : la méthode "Controls" de
l'objet

"CommandBarPopup" a échoué....

mais qu'est ce qu'il a fichu encore ce charlot de LL?
l'a pas testé, je

suis certain, sûr de lui comme il était ce lâcheur...
jps

Nicolas B. a écrit:
Qu'est-ce que tu as comme valeurs de I et J quand ça
plante ?



Si les valeurs sont 1 et 1, alors l'erreur ne vient
pas de ces variables.






.

.






1 2 3 4 5