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

      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
      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,

          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