[RESOLU] Comment interdire l'accès au gestionnaire de mise en forme conditionnelle

Mic13710

XLDnaute Junior
Bonjour à tous,

J'ai un fichier dont toutes les feuilles sont protégées, sauf une.
Le soucis, c'est qu'à partir de cette feuille non protégée il est possible de modifier les MFC des autres feuilles en passant par le gestionnaire de mise en forme conditionnelle.
Pas glop, surtout qu'il y en a pas mal, et pas bien logique pour des feuilles sensées être verrouillées.
Existe t'il un moyen en VBA d’empêcher l'utilisateur de pouvoir modifier les MFC des autres feuilles, et si ce n'est pas possible, comment peut-on interdire l'accès au gestionnaire, voire au menu des MFC ?

Merci d'avance pour votre aide.

Michel
 
Dernière édition:

adel53

XLDnaute Occasionnel
Re : Comment interdire l'accès au gestionnaire de mise en forme conditionnelle

Bonjour un essai à ajouter dans thisworkbook
Code:
Private Sub Workbook_open()
    'protection du fichier
    ActiveSheet.Protect Password:="mdp", DrawingObjects:=True, Contents:=False, Scenarios:=False
End Sub
 

Mic13710

XLDnaute Junior
Re : Comment interdire l'accès au gestionnaire de mise en forme conditionnelle

Merci adel53 pour la réponse.
Malheureusement, ça ne me convient pas car je ne veux pas protéger cette feuille qui est modifiable par l'utilisateur.
Ce que je cherche plutôt c'est inhiber ou cacher le menu des MFC et si ce n'est pas possible, carrément tout le bloc "Style" du menu Accueil.
 

Mic13710

XLDnaute Junior
Re : Comment interdire l'accès au gestionnaire de mise en forme conditionnelle

Après quelques recherches, il s'avère que ce n'est pas simple. La seule option semble être de devoir passer par le custom UI editor.
Bref, pourquoi faire aussi simple que sur les versions avant 2007 quand on peut faire compliqué.

Donc, à moins que quelqu'un ait une solution toute faite, je vais attendre un petit peu avant de m'y atteler.
 

adel53

XLDnaute Occasionnel
Re : Comment interdire l'accès au gestionnaire de mise en forme conditionnelle

Bonjour

Personnellement je pense que modifier le ruban pour accomplir cette tache n'est pas opportun.
Si tu penses vraiment qu'il y a un risque que les utilisateurs modifient les mfc pour quoi ne pas supprimer les règles de mise en page et les appliquer automatiquement via VBA. Avec un code qui par exemple s’exécute à l'ouverture et ainsi écrase les mise ne forme non conforme avec ce que tu avais paramétré au début.
 

Mic13710

XLDnaute Junior
Re : Comment interdire l'accès au gestionnaire de mise en forme conditionnelle

Salut adel53 mon voisin d'Aix en Provence.

Merci pour la réponse. Mon utilisateur n'est pas un nerveux d'excel. Pour tout dire, il ne sait pas (encore) ce que sont les mfc et je doute fort qu'il le sache un jour. C'est plutôt les fausses manips que je crains, ou qu'un jour mon utilisateur change et que je tombe sur un fouineur de première qui lui aussi risque de me casser mon bel ouvrage par excès de zèle.
Ecrire un code pour restaurer les mfc, c'est une idée, mais il y en a tellement que je risque d'y passer des plombes.
Et puis il y a le plaisir de la découverte d'un nouvel espace de jeu et je suis assez tenté d'aller y jeter un oeil même si à priori ça ne semble pas évident. De toute manière je n'ai pas le temps pour l'instant et je vais laisser murir le projet quelques temps encore.

Michel de Fuveau
 

adel53

XLDnaute Occasionnel
Re : Comment interdire l'accès au gestionnaire de mise en forme conditionnelle

Bonjour Michel

J'ai travaillé longtemps à meyreuil pas loin de chez toi :)

Voici le fichier comme tu le souhaitais sans vba sans protection avec modification du ruban.
J'ai utilisé custom ui editor pour le modifier. J'ai simplement caché la partie qui correspond à la modification des styles.
Ci-dessous un tuto intéressant.
La personnalisation du ruban sous Excel 2007

Si jamais tu as une autre demande ou question n'hésites pas.
 

Fichiers joints

Mic13710

XLDnaute Junior
Re : Comment interdire l'accès au gestionnaire de mise en forme conditionnelle

Meyreuil avec sa centrale et son "énorme" cheminée n'est pas loin en effet.

Quand je parlais de me mettre a étudier le custom ui editor, je pensais précisément au même site que ton lien.
Super ton fichier, c'est exactement ce dont j'ai besoin. Me reste plus qu'à faire de même sur le mien....
 

adel53

XLDnaute Occasionnel
Re : Comment interdire l'accès au gestionnaire de mise en forme conditionnelle

Le plus simple est de l'ouvrir avec customuieditor et esssayer de comprendre mon code

Bon week end
 

Mic13710

XLDnaute Junior
Re : Comment interdire l'accès au gestionnaire de mise en forme conditionnelle

Bonsoir adel53

J'ai analysé le code et il n'est finalement pas très dur à comprendre. On peut certainement être plus précis et cibler uniquement le gestionnaire de mise en forme conditionnelle.
Ceci dit Je me suis pas embêté, j'ai carrément copié le custom ui de ton fichier dans le mien et ça marche nickel.
J'ai mis le même code pour 2007 et 2010.
Merci adel pour cette solution qu'il va falloir que je creuse pour mon besoin, et bon we !
 
Dernière édition:

adel53

XLDnaute Occasionnel
Re : Comment interdire l'accès au gestionnaire de mise en forme conditionnelle

Bonsoir michel

J'ai essayé de cacher que la partie qui concerne la mfc sans succès peu être que j'ai pas la bonne syntaxe.
Bon courage pour la suite de ton projet
 

Mic13710

XLDnaute Junior
Re : Comment interdire l'accès au gestionnaire de mise en forme conditionnelle

Bonjour Adel,

Merci d'avoir continué à chercher. En fait c'est sur le contrôle "Command" qui faut agir.
Ci-joint ton fichier modifié sur lequel seulement le gestionnaire n'est plus accessible, soit 'presque' exactement ce que je souhaite faire, car la modification est permanente pour le fichier.
Le suite va être de pouvoir gérer ces modifications du ruban par macro à l'aide de fonctions VBA, car je ne veux pas m'amuser à jouer à chaque fois avec le customuieditor pour me donner accès à la totalité des menus et me permettre de travailler sur mon fichier.
C'est semble t'il possible avec les Generate CallBacks.
Sujet résolu. Merci pour ta précieuse aide.
 

Fichiers joints

Mic13710

XLDnaute Junior
Re : [RESOLU] Comment interdire l'accès au gestionnaire de mise en forme conditionnel

Bonjour le forum,

Un petit dernier pour la route. Au lieu du enable = "false" qui est statique on peut utiliser le on Action et pour les onglets au lieu du Visible = "false", une fonction plus intéressante est le getVisible.
Et avec ça j'ai résolu mon besoin. Il suffit d'attribuer ensuite la valeur True or false aux cancelDefault et returnedVal suivant les besoins, et ça marche nickel.
Il faut bien entendu un xlsm pour que les CallBacks fonctionnent.
Voici un fichier sur lequel cancelDefault = True et returnedVal = False.
Il suffit de modifier ces valeurs, sauvegarder, fermer puis ouvrir le fichier pour voir les changements.
 

Fichiers joints

adel53

XLDnaute Occasionnel
Re : [RESOLU] Comment interdire l'accès au gestionnaire de mise en forme conditionnel

Bonjour Michel

Merci pour ton retour d'expérience.
Bonne continuation et à binetot pour d'autres problématiques.
 
Dernière édition:

Mic13710

XLDnaute Junior
Re : [RESOLU] Comment interdire l'accès au gestionnaire de mise en forme conditionnel

Salut Adel53,

Oui, le sujet et noté résolu depuis samedi matin.
Je continue à creuser les possibilités offertes pour personnaliser le ruban et maintenant que j'ai compris comment ça marchait, j'ai aussi compris qu'il était extrêmement facile pour un bricoleur informatique de la supprimer en une poignée de secondes.
Je suis donc à la recherche d'un moyen de vérifier en VBA que le ruban personnalisé existe, mais rien de tangible pour le moment.
Si tu as une idée, je suis preneur.

Bonne semaine,

Michel
 

adel53

XLDnaute Occasionnel
Re : [RESOLU] Comment interdire l'accès au gestionnaire de mise en forme conditionnel

Re michel

A mon avis la solution est de créer le ruban en utilisant visual studio il me semble que dans ce cas il n y a pas un fichier customUI.xml qu'on peut remplacer ou vider. Je n'ai personnellement jamais fais de modification de ruban en utilisant cette solution.
Tu peux aussi créer un complément xla qui gère cette modification il faut obligatoirement qu'il soit en Dll donc du c++ ou .net

Je pense que tu devrais vraiment réfléchir aux utilisateurs finaux. Personnellement je connais les compétences de mes collègues de travail je sais pertinemment que personne ne connait custom Ui et la possibilité de modifier le ruban. Je pense que si je présente ton fichier aux employés de ma boite une grande majorité ne remarqueront même pas l'absence de la MFC. Avant de te lancer dans un développement lourd assure toi qu'il y en ait besoin. Je ne pense pas qu'une solution sure à 100% n'existe pas en utilisant excel on peut tout dé-compiler et accéder au code si on y tient vraiment.

Tiens moi au courant de ce que tu décideras :)
 

Mic13710

XLDnaute Junior
Re : [RESOLU] Comment interdire l'accès au gestionnaire de mise en forme conditionnel

Sans aller jusque là, je cherchais un bout de code qui me permettrait de vérifier que le customUI n'a pas été supprimé. Mais je ne vais certainement pas me lancer dans un développement de folie alors que mes utilisateurs savent tout juste démarrer leur ordis.
Simplement, quand je découvre une faille, j'essaye autant que faire se peut d'y trouver une parade sans pour autant y passer du temps. Si c'est trop lourd, je laisse tomber.

Merci encore pour ton aide.

Michel
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas