Protection feuille sous Excel

Fermé
transalp31 - 10 mai 2008 à 22:06
 G.David - 12 mai 2008 à 18:20
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;
A voir également:

3 réponses

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
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
Transalp31 > Transalp31
11 mai 2008 à 18:28
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
G.David Messages postés 768 Date d'inscription vendredi 21 novembre 2003 Statut Membre Dernière intervention 1 juin 2020 203
11 mai 2008 à 18:39
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
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
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