Verrouiller un classeur sauf une page

Copper Contributor

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!

4 Replies

@Mlanie_Angers 

 

Cela dépend de la manière et de ce que vous souhaitez bloquer exactement. Voici quelques moyens d’aider.

Protéger une feuille de calcul

https://support.microsoft.com/fr-fr/office/prot%c3%a9ger-une-feuille-de-calcul-3179efdb-1285-4d49-a9...

 

Protéger un fichier Excel

https://support.microsoft.com/fr-fr/office/prot%c3%a9ger-un-fichier-excel-7359d4ae-7213-4ac2-b058-f7...

 

 

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.

@NikolinoDE 

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

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

 

@Mlanie_Angers 

 

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.

 

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 elle sera bénéfique pour plus de membres de la communauté qui liront ici.
* tout a été traduit en français avec des traducteurs vocaux automatiques.