[VBA Excel2003]Autoriser modif police et interdire modif format cellule

Signaler
Messages postés
44
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
25 avril 2019
-
Messages postés
44
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
25 avril 2019
-
Bonjour,

Dans un classeur Excel2003 je souhaite autoriser l'utilisateur à modifier la police et la taille de police des cellules mais je ne veux pas qu'il puisse modifier les autres formats comme la couleur de fond, l'encadrement, etc.

Si je protège la feuille par mot de passe en interdisant la modification du format de cellule, plus possible (enfin je crois) d'autoriser la modif de police par VBA. Tout est interdit.
Si je protège la feuille en autorisant la modification du format de cellule, pas de souci pour les polices mais les autres formats sont autorisés aussi ! C'est là que je lance mon SOS : quelqu'un aurait-il une idée VBA pour résoudre mon problème ?

Merci d'avance de votre aide.
Apolinaire

1 réponse

Messages postés
44
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
25 avril 2019

Bonjour,

Merci Bigfish_le vrai de t'être penché sur ma question, ("Apolinaire, il me semble que ton problème est plus complexe à résoudre"), même si comme moi tu es bloqué par le manque d'événements concernant les formats de cellules.

J'ai quand même résolu mon problème "à la hussarde". En utilisant l'événement SelectionChange. Dans chaque appel à cet événement :
1) je garde en mémoire les coordonnées de la cellule où l'on se rend.
2) j'utilise les coordonnées de la cellule qu'on vient de quitter (c'est la dernière où l'on s'est rendu avant le déplacement actuel !) et je remets d'office tous les formats de cellule que je ne veux pas voir changer, indépendamment du fait que l'utilisateur les a changé ou pas.

Ca marche. Petit désagrément : ce n'est pas "beau" car si l'utilisateur modifie par exemple le background d'une cellule, après OK il voit son background modifié ! Heureux l'utilisateur ! Jusqu'à ce qu'il change de cellule (ou même de feuille, j'ai prévu le coup) et vlan, le background revient comme il doit être.

Je crois franchement qu'il n'y a pas d'autre solution en se servant de VBA.
Apolinaire