Protection feuille sous Excel

transalp31 -  
 G.David -
Bonjour,
J'uitlise ce code afin de mettre en evidence la ligne de la cellule active dans excel 2007 :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Cells.Interior.ColorIndex = XlNone
With ActiveCell
.EntireRow.Interior.ColorIndex = 27
End With
End Sub

Cela fonctionne bien mais depuis son application, je ne peux plus protéger la feuille de calcul.
Lorsque je mets une protection, j'ai un message d'erreur du type :
"Erreur d'exécution 1004"

Le débogeur me mets en surbrillance cette ligne :
Cells.Interior.ColorIndex = xlNone

Est ce que quelqu'un peut m'aider... helppppppp

Stéphane;
Configuration: Windows Vista
Internet Explorer 7.0
Excel 2007

3 réponses

  1. G.David
     
    sous 2000 et 2003

    pour protéger
    Worksheets("feuil1").Protect password = "MdP"


    à ce moment la feuille ne peut plus etre modifier (y compris par macro

    pour déproteger
    Worksheets("feuil1").Unprotect password = "MdP"


    la feuille peut etre manuipuler par VBA il suffit de la reproteger en fin de macro

    sub ma_MacRo()
    Worksheets("feuil1").Unprotect password = "MdP"
    ....
    ' la tout plein de trucs , sde mise en forme , d'écriture , d'effacement
    ....
    Worksheets("feuil1").Protect password = "MdP"
    end sub 
    0
    1. Transalp31
       
      Merci pour ta réponse David

      Mais cela ne marche pas. Pire, cela a mis une protection sur la feuille que je ne peux pas enlever car je n'ai pas le Mdp?!?

      Aussi, aurais tu une idée pour enlever la protection? J'ai essayer "Mdp" mais cela ne marche pas!

      Du coup, le script ne s'execute pas!!!


      Si tu as une solution, je suis vraiment embêter, je n'avais pas de sauvegarde du fichier !!!


      Merci par avance,
      Stéphane
      0
      1. Transalp31 > Transalp31
         
        Après une grosse frayeur, j'ai trouvé la solution pour supprimer la protection de la feuille sans connaitre le mot de passe :
        http://fordom.free.fr/

        J' en reviens donc à mon probleme initiale, le script refuse de fonctionner dès que la protection de la feuille est active,
        Quelqu'un aurait il une solution?

        Stéphane
        0
  2. G.David Messages postés 790 Statut Membre 203
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Worksheets("feuil1").Unprotect Password = "MdP"
    Cells.Interior.ColorIndex = xlNone
    With ActiveCell
    .EntireRow.Interior.ColorIndex = 27
    Worksheets("feuil1").Protect Password = "MdP"
    End With
    End Sub
    

    ceci marche très bien
    dans ce cas effectivement le mot de passe est MdP en respectant la casse
    par contre la feuille est effectivement protégée
    en sortie de macro
    par contre ce qui arrive parfois le mot de passe VBA n'est pas reconnu au clavier (j'ai le problème ici et sur un programme perso)
    mais si tu doit écrire dans une cellule tu peux employer ceci
    Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    Worksheets("feuil1").Unprotect Password = "MdP"
    Cancel = True
    End Sub

    en changeant de sélection tu protèges la feuille à nouveau
    en changeant de cellule aussi par entrée aussi
    si ta protection doit juste être pour un lecteur la déprotection protection par selection change est intéressante mais si t doit travailler sur la feuille elle va vite devenir pénible
    Cordialement
    g.David
    0
    1. Transalp31
       
      Bonjour Sebastien,

      Tu as raison, le code fonctionne bien...

      mais je rencontre un autre soucis, lorsque la protection se réactive (dès le deplacement d'une cellule donc), je n'arrive plus a utiliser les filtres automatiques!

      Est il possible d'entrer une commande libérant cette fonction?

      Merci pour ton aide,
      Stéphane
      0
  3. G.David
     
    normalement les filtre auto sont bloqués par les protections
    si tu veut t'en servir implante la macro événement sur le clic droit la feuille sera dé-protégée
    mais les feuilles protéger sont assez chi... heu! laxatives? à utilisées
    G.David
    0