XL 2019 Protéger/déprotéger plusieurs feuille d'un coup

Lazz

XLDnaute Junior
Bonjour à tous,

Peut être quelqu'un arrivera à résoudre mon problème !! :)

J'ai un vingtaine d'onglets et seulement quelques uns doivent être protéger. Cependant, les feuilles ne sont pas à protégé intégralement.
Par exemple : les colonnes A, D et F doivent être protégées. Le reste doit pouvoir être saisie.
J'arrive à protéger mes feuilles une par une dans "révisions". Mais cela m'arrangerait grandement qu'une macro puissent me protéger et déprotéger tout mon classeur d'un seul coup.

Avez-vous des propositions à ma faire ?

Merc :)
 
Solution
Re le fil

Arf... Mal lu la question (sélection de feuilles à protéger dans classeur). Le nouveau code :
Code:
Option Explicit
Sub protection()
Dim exclure As Variant
Dim Feuil As Worksheet
Application.ScreenUpdating = False
exclure = "Feuil1,Feuil2,Feuil3,"
For Each Feuil In ThisWorkbook.Worksheets
If InStr(exclure, Feuil.Name & ",") = 0 Then
Feuil.Protect Password:="Lazz"
End If
Next Feuil
End Sub

Sub déprotection()
Dim exclure As Variant
Dim Feuil As Worksheet
Application.ScreenUpdating = False
exclure = "Feuil1,Feuil2,Feuil3,"
For Each Feuil In ThisWorkbook.Worksheets
If InStr(exclure, Feuil.Name & ",") = 0 Then
Feuil.Unprotect Password:="Lazz"
End If
Next Feuil
End Sub

Comme dit post précédent : Avant de protéger, il te faut...

Lazz

XLDnaute Junior
On m'a donné ce code :
Sub Pro()

Dim i As Integer
Dim Wb As Workbook
Dim sh As Variant

Set Wb = ActiveWorkbook
sh = Wb.Sheets("Data").Range("R2:R18").Value

Application.ScreenUpdating = False

Wb.Protect ("CDG22")
For i = 1 To UBound(sh)
If sh(i, 1) = "" Or sh(i, 1) = 0 Then GoTo S
Sheets(CStr(sh(i, 1))).Protect ("CDG22"), AllowFiltering:=True
S:
Next i

Application.ScreenUpdating = True

End Sub

Mais j'avoue ne pas bien comprendre à quoi il correspond 😅
 

Eric C

XLDnaute Barbatruc
Bonjour le forum
Bonjour Lazz

Deux code, l'un pour protéger, l'autre pour déprotéger TOUTES les feuilles :
VB:
Option Explicit
Sub ProtectionToutesLesFeuilles()
Application.ScreenUpdating = False
Dim Feuil As Worksheet
For Each Feuil In Sheets
Feuil.Protect Password:="Lazz"
Next Feuil
End Sub

Sub DeprotectionToutesLesFeuilles()
 Application.ScreenUpdating = False
Dim Feuil As Worksheet
For Each Feuil In Sheets
Feuil.Unprotect Password:="Lazz"
Next Feuil
End Sub

Ensuite, avant de protéger, il te faut "déverrouiller" les colonnes que tu désires préserver (Clic droit - Format de cellules - Protection - Décocher "Verrouillée")

Cela fait toujours plaisir de savoir que la contribution a aidé (ou pas).

N'hésitez pas à marquer le sujet comme résolu le cas échéant ou à liker.


Bonne après-midi à toutes & à tous
@+ Eric c
 

Eric C

XLDnaute Barbatruc
Re le fil

Arf... Mal lu la question (sélection de feuilles à protéger dans classeur). Le nouveau code :
Code:
Option Explicit
Sub protection()
Dim exclure As Variant
Dim Feuil As Worksheet
Application.ScreenUpdating = False
exclure = "Feuil1,Feuil2,Feuil3,"
For Each Feuil In ThisWorkbook.Worksheets
If InStr(exclure, Feuil.Name & ",") = 0 Then
Feuil.Protect Password:="Lazz"
End If
Next Feuil
End Sub

Sub déprotection()
Dim exclure As Variant
Dim Feuil As Worksheet
Application.ScreenUpdating = False
exclure = "Feuil1,Feuil2,Feuil3,"
For Each Feuil In ThisWorkbook.Worksheets
If InStr(exclure, Feuil.Name & ",") = 0 Then
Feuil.Unprotect Password:="Lazz"
End If
Next Feuil
End Sub

Comme dit post précédent : Avant de protéger, il te faut "déverrouiller" les colonnes que tu désires préserver (Clic droit - Format de cellules - Protection - Décocher "Verrouillée")

Cela fait toujours plaisir de savoir que la contribution a aidé (ou pas).

N'hésitez pas à marquer le sujet comme résolu le cas échéant ou à liker.


Bonne après-midi à toutes & à tous
@+ Eric c
 

Lazz

XLDnaute Junior
Merci Eric !
Ca marche au top !

Cependant j'ai quelques exceptions comme toujours !

- J'aimerai pouvoir modifié la police, faire des tries etc sur mes feuilles même si elles sont protégées.
- De plus, J'ai certaines macros qui ne fonctionnent pas lorsque je protège certaines feuilles. N'est-il vraiment pas possible de pouvoir sélectionner les feuilles qui je veux protéger ?

Bien à toi :)
 

Eric C

XLDnaute Barbatruc
Re le fil

1/ Quand c'est protégé, c'est protégé (il y aura bien un grand de ce forum qui va venir pour te donner la soluce miracle..)
2-1/ Pour pouvoir activer les macros, il faut ajouter l'argument suivant :
VB:
"Feuil.Protect Password:="Lazz", userinterfaceonly:=True
2-2/ Je pense t'avoir donné le code pour protéger certaines de tes feuilles (IL faut "jouer" avec le nom des feuilles (#4 - Seules les feuilles 1 à 3 sont exclues de la protection).!!!
@+ Eric c
 

Discussions similaires

Statistiques des forums

Discussions
312 046
Messages
2 084 848
Membres
102 686
dernier inscrit
Franck6950