Verrouillage du menu principal d'excel

dss

XLDnaute Occasionnel
Bonjour le forum,

J'ai différentes application VBA excel qui permettent notamment d'empêcher l'impression, la copie du fichier, etc... Tout cela fonctionne bien dès l'instant ou un utilisateur n'a pas changé la configuration d'excel au niveau du menu principal :
Outils--->Macro--->Securité---->PARAMETRE A FAIBLE pour que la macro puisse s'exécuter.
Le Hic : si un utilisateur change le paramètre de FAIBLE à MOYEN ou ELEVE, la macro ne s'exécute plus et les différents programmes ne sont plus actifs.

Aussi, existe-t-il un moyen d'empêcher l'utilisateur d'avoir accès à cette partie du menu afin que les configurations d'excel ne puissent être changées ? Ou tout autre moyen qui permettrait de contourner ce problème ?

Merci de votre soutien

Cordialement

DSS
 

Iderium

XLDnaute Nouveau
Re : Verrouillage du menu principal d'excel

Hm merci encore Job75 mais j'ai un petit problème avec ta maccro.
En fait je pense que mon problème vient de mon "ThisWorkbook".
Voici ce que j'ai dedans :

Code:
Private Sub Workbook_Open()
    CommandBars(1).Controls("Outils").Enabled = Environ("Username") = "FRLKEAM"
    C1 = " "
    Application.OnKey "^f", "Verbit"
    Application.OnKey "^g", "ConecCaro"
    color_i = 0
    Carotruc.ChampRecherche.text = " "
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveMenu
End Sub

Tout ce qui se trouve après la partie "C1 = " est important car nécessaire au bon fonctionnement d'une des maccro du fichier.

En revanche, dans mon module, j'ai donc placé ceci :

Code:
Sub ActiveMenu()
CommandBars(1).Controls("Outils").Enabled = True 'ou .Visible = True
End Sub

Le problème c'est que ça ne fonctionne pas.
Ça m'affiche une erreur à l'ouverture :
Erreur d'exécution '91':
Variable objet ou variable de bloc With non définie.


Dans la maccro, le double = me semble suspect.
Je suis vraiment débutant donc j'ai du mal et je ne vois aps d'où peut venir cette érreur.

Merci d'avance de votre aide.
 

job75

XLDnaute Barbatruc
Re : Verrouillage du menu principal d'excel

Bonjour Iderium,

Oui, autant pour moi, il faut que les modifications des menus se fassent dans un Module, je l'avais oublié.

Dans ThisWorkbook :

Code:
Private Sub Workbook_Open()
DécideMenu
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveMenu
End Sub

Dans un Module :

Code:
Sub DécideMenu()
CommandBars(1).Controls("Outils").Enabled = Environ("Username") = "FRLKEAM"
End Sub

Sub ActiveMenu()
CommandBars(1).Controls("Outils").Enabled = True 'ou .Visible = True
End Sub

Je n'ai pas mis votre code supplémentaire C1 = ... car bien sûr ça bug chez moi...

A+
 

Iderium

XLDnaute Nouveau
Re : Verrouillage du menu principal d'excel

Re bonjour,

Ça fonctionne parfaitement.
En fait le problème venait de moi, je n'avais pas vu non plus que les modif des menu devaient se trouver dans le module.
C'est difficile de faire la différence entre les modules et le Workbook quand on est débutant.

Merci en tout cas :)
 

Statistiques des forums

Discussions
312 848
Messages
2 092 779
Membres
105 533
dernier inscrit
TAF