Sep 21 2020 07:38 AM
Bonjour !
est-ce possible de verrouiller tout un classeur Excel sauf une page? Ma première feuille est une page de données qui alimente toutes les autres. Du coup plusieurs intervenants la remplissent, mais je voudrais ne pas avoir à entrer un code à chaque page à chaque fois que je dois faire une modification dans mes autres fiches. Donc comment barrer le classeurs avec toutes les pages en entrant juste une fois le code, mais laisser la première page de saisi disponible? Merci de votre aide!
Sep 21 2020 11:43 AM
Cela dépend de la manière et de ce que vous souhaitez bloquer exactement. Voici quelques moyens d’aider.
Protéger un fichier Excel
Je serais heureux de savoir si je pouvais aider.
Nikolino
Je sais que je ne sais rien (Socrate)
* Veuillez marquer et voter pour cette réponse si cela vous aide, car cela sera bénéfique pour plus de communauté
membres lisant ici.
Sep 22 2020 07:21 AM
Merci pour votre réponse, mais de ce que je vois je ne peux pas verrouiller le classeur en entier sauf une feuille...
Je devrai me résigner à entrer un mot passe à chaque feuille.
Bonne journée
Sep 22 2020 08:23 AM
Bonjour @Mlanie_Angers,
Le code VBA suivant devrait pouvoir vous aider.
Par contre, au contraire d'une saisi de mot de passe régulière les caractères que vous entrerez ne seront pas masqué par un astérix.
Ce code va tout verouiller sauf la feuille nommé "DataInput" que vous pouvez modifier directement dans le code (6 lignes avant la fin)
Private Sub ProtectAll()
Dim ws As Worksheet
Dim userpassword1 As String
Dim userpassword2 As String
userpassword1 = ""
userpassword2 = ""
PasswordInput:
userpassword1 = InputBox("Type in the lock password here", "Type in the lock password here")
userpassword2 = InputBox("Confirm the lock password here", "Confirm the lock password here")
If Not userpassword1 = userpassword2 Then
MsgBox "Your password doesn't match. Please try again"
GoTo PasswordInput
End If
For Each ws In ActiveWorkbook.Worksheets
'Change the sheet name below to match the one you don't want to lock
If Not ws.Name = "DataInput" Then
ws.Protect Password:=UserPassword, DrawingObjects:=True, Contents:=True, Scenarios:=False
End If
Next ws
ActiveWorkbook.Protect Password:=UserPassword, Structure:=True, Windows:=False
End Sub
Sep 23 2020 08:02 AM
Désolé pour la réponse tardive, mais les responsabilités personnelles sont prioritaires.
Avec ce code VBA, le classeur entier est verrouillé à l'exception de la feuille de calcul souhaitée.
Sub Protection()
Dim i As Integer
For i = 1 To ActiveWorkbook.Worksheets.Count
ActiveWorkbook.Worksheets(i).Activate
ActiveSheet.Protect Password:="1234" ‘changez le mot de passe si nécessaire.
Next i
Sheet("XY").Unprotect Password:="1234"
‘XY est le nom de la feuille de calcul qui ne doit pas être verrouillée.
‘toutes les autres sont verrouillées.
End Sub
Non testé, mais devrait fonctionner sans problème.