Re bonjour
Un petit code qui ne prend en compte que les cellules allant de A1 à Z100 sur toutes les feuilles
Sub Tst()
On Error Resume Next ' on ne sait jamais...
Dim Ws As Worksheet ' on dimensionne la variable Ws comme étant un objet feuille
Dim Cell As Range ' on dimensionne la variable Cell comme étant un objet range
For Each Ws In Worksheets ' on boucle sur les feuilles de la collection Worksheets qui contient toutes le feuilles du classeur
Ws.Unprotect ' on déprotège la feuille en cours
For Each Cell In Ws.Range("A1:Z100") ' sélection de la plage sinon depuis excel 2007 : 16384 colonnes par 1 046 700 lignes environs ça fait trop !!!! En plus par défaut les cellules sont cochées comme vérouillées !!!
If Cell.Locked = False Then Cell.Locked = True ' si la coche "verrouillage" de la cellule testée n'est pas mise alors on la met
Next Cell ' cellule de la plage suivante
Ws.Protect ' on reprotège la feuille en cours
Next Ws ' feuille suivante
End Sub
Je le répète les cellules sont cochées par défaut comme étant verrouillées, donc en mettant la protection de la feuille, toutes les cellules sont protégées.
@ bientôt
LouReeD