Forum Discussion

Mlanie_Angers's avatar
Mlanie_Angers
Copper Contributor
Sep 21, 2020

Verrouiller un classeur sauf une page

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

  • NikolinoDE's avatar
    NikolinoDE
    Platinum Contributor

    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.
  • NikolinoDE's avatar
    NikolinoDE
    Platinum Contributor

    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-a9c3-f4ca36276de6?ui=fr-fr&rs=fr-fr&ad=fr

     

    Protéger un fichier Excel

    https://support.microsoft.com/fr-fr/office/prot%c3%a9ger-un-fichier-excel-7359d4ae-7213-4ac2-b058-f75e9311b599?ui=fr-fr&rs=fr-fr&ad=fr

     

     

    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.

    • Mlanie_Angers's avatar
      Mlanie_Angers
      Copper Contributor

      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

      • Bennadeau's avatar
        Bennadeau
        Iron Contributor

        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