Macro : format de cellules non protégées

ILoveZadig

XLDnaute Occasionnel
Bonjour à tous, :)

Je m'en remets à vous pour ce problème en fichier joint.

J'ai une zone de cellules (fond bleu) non verrouillées et j'ai laissé le reste de la feuille par défaut (avec verrouillage donc).

Ce fichier est juste un exemple pour que vous compreniez mon problème : j'ai une macro qui se lance via un bouton avec les arguments Unprotect et Protect et mot de passe (2009).

Le prolbème est que quand je lance ma macro, elle reprotège la feuille, mais on ne peut plus mettre en forme les cellules de la zone bleue (sachant qu'il n'y a que celle-là où je voudrais changer la mise en forme).

NB : je ne veux pas qu'il soit possible de changer la mise en forme des cellules verrouillées, et je voudrai dans l'idéal qu'il ne soit pas possible de sélectionner les cellules verrouillées.

Merci beaucoup pour votre aide.
 

Pièces jointes

  • Test.xls
    25.5 KB · Affichages: 48
  • Test.xls
    25.5 KB · Affichages: 53
  • Test.xls
    25.5 KB · Affichages: 49

Pierrot93

XLDnaute Barbatruc
Re : Macro : format de cellules non protégées

Bonjour ILoveZadig

lors de la protection de la feuille, au moins a partir de la version 2003, il faut autoriser "format de cellule" dans la liste "autoriser tous les utilisateurs de cette feuille à :"

bonne journée
@+
 

ILoveZadig

XLDnaute Occasionnel
Re : Macro : format de cellules non protégées

Bonjour Pierrot93,

Oui, mais le problème est que cette protection est faite par marco.

Je peux ajouter l'argument Content:=False il me semble (après ActiveSheet.protect (2009)), mais le problème est qu'il sera possible de changer la mise en forme des cellules verrouillées également, alors qu'idéalement, je voudrais que ce changement de mise en forme ne soit possible que pour les cellules non verrouillées.

Du coup, je ne suis pas sûr d'avoir de solution.
 

Pierrot93

XLDnaute Barbatruc
Re : Macro : format de cellules non protégées

Re

peut être en dé-cochant "sélectionner les cellules verouillées", et en autorisant "sélectionner les cellules déverouillées" et "format de cellule". Dans ce cas tu ne pourras pas sélectionner de cellules veriouillées, donc pas appliquer de format...

@+
 

ILoveZadig

XLDnaute Occasionnel
Re : Macro : format de cellules non protégées

Oui, en effet, ça peut être une solution. Pour résumer, j'en suis à ajouter à la fin de la macro :

Code:
ActiveSheet.Protect (2009) contents:=True

L'argument "AllowFormattingCells" ne serait-il pas plus adapté?

Enfin, existe t'il un argument à ajouter pour empecher la selection des cellules verrouilées? (comme lorsque l'on verrouille "à la main" en décochant Selectionner les cellules verrouillées)

Merci beaucoup.
 

Pierrot93

XLDnaute Barbatruc
Re : Macro : format de cellules non protégées

Re

modifies ton code de protection ainsi :

Code:
With ActiveSheet
    .Unprotect (2009)
    Range("A2:B10").ClearContents
    .EnableSelection = xlUnlockedCells
    .Protect "2009", , , , , True
End With

@+
 

Pierrot93

XLDnaute Barbatruc
Re : Macro : format de cellules non protégées

Re

A noter, pour éviter de déprotéger / protéger les feuilles lors de l'exécution d'une macro, tu peux également protéger ta feuille lors de l'ouverture du classeur en utilisant l'argument "UserInterfaceOnly" :

code à placer dans le module "thisworkbook"
Code:
Private Sub Workbook_Open()
With Sheets("Feuil1")
    .EnableSelection = xlUnlockedCells
    .Protect "2009", , , , True, True
End With
End Sub

@+
 

ILoveZadig

XLDnaute Occasionnel
Re : Macro : format de cellules non protégées

Re,

Je suis en train d'essayer d'appliquer ce que tu viens de me dire au fichier que je dois améliorer. Le problème est qu'il est totalement différent du fichier exmple que j'ai mis ici, et je m'attendais à une solution plus simple.

Re

A noter, pour éviter de déprotéger / protéger les feuilles lors de l'exécution d'une macro, tu peux également protéger ta feuille lors de l'ouverture du classeur en utilisant l'argument "UserInterfaceOnly" :

code à placer dans le module "thisworkbook"
Code:
Private Sub Workbook_Open()
With Sheets("Feuil1")
    .EnableSelection = xlUnlockedCells
    .Protect "2009", , , , True, True
End With
End Sub

@+

Cette solution me permettrait d'enlever les Unprotect et Protect de chaque macro? (car il y en a plusieurs sur le bon fichier).

Merci beaucoup en tout cas de t'interesser à mon problème.
 

Pierrot93

XLDnaute Barbatruc
Re : Macro : format de cellules non protégées

Re

oui, tout à fait, plus besoin de déprotéger / protéger dans le code des macros, par contre attention au nom de la ou des feuilles concernées par tes différentes procédures.

@+
 

ILoveZadig

XLDnaute Occasionnel
Re : Macro : format de cellules non protégées

Ok, merci beaucoup!

J'essaye ça, en enlevant tous les Unprotect et Protect que j'avais déjà placé. Je crois comprendre qu'en plus, ta solution permet d'empecher la selection des cellules verrouillées? Et en plus de changer le contenu des cellules non verrouillées (enfin, de toutes les cellules, mais comme on ne pourra selectionner que les non verrouillées)?

J'ai donc l'impression que ça correspond parfaitement à ce que je recherchais.

Merci beaucoup, je reviendrai sur ce fil en cas de pépin. :)
 

Pierrot93

XLDnaute Barbatruc
Re : Macro : format de cellules non protégées

Re

J'essaye ça, en enlevant tous les Unprotect et Protect que j'avais déjà placé. Je crois comprendre qu'en plus, ta solution permet d'empecher la selection des cellules verrouillées? Et en plus de changer le contenu des cellules non verrouillées (enfin, de toutes les cellules, mais comme on ne pourra selectionner que les non verrouillées)?

oui, c'est bien cela, tu as tout compris.

@+
 

Discussions similaires

Statistiques des forums

Discussions
312 559
Messages
2 089 602
Membres
104 224
dernier inscrit
Brilma