Protection de cellules malgrés macros (Excel 2002)

Résolu
PLAYA2 -  
PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   -
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. PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   835
     
    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
  2. pilas31 Messages postés 1878 Statut Contributeur 648
     
    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
  3. PLAYA2
     
    Un grand merci PHILOU10120, ça fonctionne nickel !!!

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

    Bonne journée à tous.
    0
  4. PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   835
     
    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