Excel VBA : Protection et Deprotection d'une feuille

Jovial -  
PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   -
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. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    met-toi en enregistrement de macro, fais les opérations, et tu auras 99% du code.
    eric
    0
  2. Jovial
     
    Bonjour et merci les précieuses orientations. J'en prends bonne note.
    0
  3. PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   835
     
    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