Protection de cellules malgrés macros (Excel 2002)

Résolu
Bonjour à tous,

Je recherche une solution pour protéger des cellules en ecriture sur excel 2002, pour ça aucun problème mais j'ai deux macros qui ne peuvent se lancer lorsque la feuille est protégée => un message me demande d'oter la protection de la feuille !!!

Les macros sont des masquages de lignes sous conditions et j'ai bien penser à cocher : "Autoriser tous les utilisateurs de cette feuille à :
"utiliser filtres automatiques " et "Format de lignes" dans la protection de feuille.

L'idéal serait d'y parvenir sans créer une nouvelle macro mais je ne suis pas certaine que ce soit possible...

D'avance merci.

4 réponses

  1. Contributeur
    Bonjour

    Si ce n'est qu'une protection pour ne pas écraser des formules sans mot de passe

    ajouter cette ligne au début de la macro pour oter la protection de la feuille

    ActiveSheet.Unprotect

    Et celle-ci en fin de macro pour reprotéger la feuille

    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, _
    Scenarios:=True
    2
    1. Contributeur
      Bonjour,

      Peut être en encadrant le code de la macro en otant la protection et en la remettant à la fin comme ceci :

      ActiveSheet.Unprotect Password:="XXXXX"
      .....
      .....
      ActiveSheet.Protect Password:="XXXXX"

      A+
      0
      1. Un grand merci PHILOU10120, ça fonctionne nickel !!!

        Merci également à pilas31 d'avoir pris le temps de me répondre.

        Bonne journée à tous.
        0
        1. Contributeur
          Bonjour

          Macro avec mot de passe

          mettre ceci dans le module VBA

          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("XXXXXX", 3)
          maVar = Application.UserName
          MsgBox "Mot de passe correct." & vbCr & "Poursuite de l'exécution.", vbOKOnly + vbInformation
          End Sub

          Début de la macro avec le contrôle par mot de passe

          Sub glissement_hebdo()
          '
          ' glissement_hebdo Macro
          ' Macro enregistrée le 17/01/2013 par Philou10120
          '

          Sheets("LUNDI").Select
          Call ControleMotDePasse("XXXXXX", 3)
          If MsgBox("Attention avez vous déjà copié les données ? celles-ci vont être écrasées !!!", vbYesNo, "") = vbNo Then
          Exit Sub
          End If
          et la suite de votre macro

          Je vous joins un extrait de fichier pour vous aider à récupérer la feuille fmMotDePasse avec la boite de dialogue à insérer dans les modules

          https://www.cjoint.com/?3ArqjlnJV7i
          0