Excel VBA : Protection et Deprotection d'une feuille

Bonjour les meilleurs,

Je cherche, au début de l'exécution de mon code, enlever la protection de ma feuille et, à la fin de l'exécution de celui-ci, remettre la protection.

Le bout de code "activesheet.unprotect" et "activesheet.protect" m'offre une possibilité très limitée puisque je souhaiterais aussi, à la protection :
1. Affecter un password
2. Autoriser le Tri et Filtre.

Merci d'avance

3 réponses

  1. Contributeur
    Bonjour,

    met-toi en enregistrement de macro, fais les opérations, et tu auras 99% du code.
    eric
    0
    1. Bonjour et merci les précieuses orientations. J'en prends bonne note.
      0
      1. Contributeur
        Bonjour Jovial

        Une idée avec le droit à trois essais :
        ______________________________________________________________________________________
        Public varMotDePasse As String
        Public varNumTentatives As Byte
        __________________________________________
        Sub ControleMotDePasse(MotDePasse As String, NumTentatives As Byte)
        varMotDePasse = MotDePasse
        varNumTentatives = NumTentatives
        fmMotDePasse.Show
        End Sub
        _______________________________________________________________________________________
        Sub TestControleMotDePasse()
        Dim mavar As String
        Call ControleMotDePasse("PhC123", 1)
        mavar = Application.UserName
        MsgBox "Mot de passe correct." & vbCr & "Poursuite de l'exécution.", vbOKOnly + vbInformation
        End Sub
        __________________________________________________________________________________________

        Sub nom de la macro()

        Sheets("NOM FEUILLE").Select
        'Oter la protection
        ActiveSheet.Unprotect Password:="PhC123"
        'fige l'écran
        Application.ScreenUpdating = False
        'affiche un message dans la barre de statut
        Application.StatusBar = "patience S.V.P. traitement en cours ... "

        VOTRE MACRO

        'Mettre la protection
        ActiveSheet.Protect "PhC123"
        'libère l'écran
        Application.ScreenUpdating = True
        'efface le message dans la barre de staut
        Application.StatusBar = False

        End Sub

        0