problème protection de feuille
Le
Maxime

bonjour,
j'ai un petit sousci avec la protection des feuilles.
En fait dans ma macro Workbook_Open(), je dois protéger toutes les feuilles
en écriture, donc j'utilise dans cette macro la fonction
Sheets("Accueil").Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True
qui marche sur excel 97.
Par contre j'ai un formulaire qui doit me permettre de mettre à jour mes
onglets. Mais comme j'ai une protection, excel me lance un message d'erreur
comme ma feuille est protégé.
donc dans le traitement de mon formulaire, je me suis dis qu'il fallait
enlever la protection, insérer les données, et remettre la protection.
Or quand j'utilise
Sheets("Accueil").Unprotect
j'ai un message qui me dit 'La méthode Unprotect de la classe Worksheet a
échoué'. Je ne vois pas d'où ça vient car si je teste les deux fonctions
Sheets("Accueil").Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True
et
Sheets("Accueil").Unprotect
unitairement, ça a l'air de marcher. Donc je suis un peu dérouté.
Si quelqu'un a une idée sur le sujet, je suis preneur
Merci
j'ai un petit sousci avec la protection des feuilles.
En fait dans ma macro Workbook_Open(), je dois protéger toutes les feuilles
en écriture, donc j'utilise dans cette macro la fonction
Sheets("Accueil").Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True
qui marche sur excel 97.
Par contre j'ai un formulaire qui doit me permettre de mettre à jour mes
onglets. Mais comme j'ai une protection, excel me lance un message d'erreur
comme ma feuille est protégé.
donc dans le traitement de mon formulaire, je me suis dis qu'il fallait
enlever la protection, insérer les données, et remettre la protection.
Or quand j'utilise
Sheets("Accueil").Unprotect
j'ai un message qui me dit 'La méthode Unprotect de la classe Worksheet a
échoué'. Je ne vois pas d'où ça vient car si je teste les deux fonctions
Sheets("Accueil").Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True
et
Sheets("Accueil").Unprotect
unitairement, ça a l'air de marcher. Donc je suis un peu dérouté.
Si quelqu'un a une idée sur le sujet, je suis preneur
Merci
Il faudrait essayer avec cela, j'utilise les deux dans le
meme code et cela fonctionne :
Worksheets("Accueil").Unprotect
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True
a+
Sylvain
soit pas protégée au départ.
Mais dès que le feuille protégée la commande Worksheets("Accueil").Unprotect
me génère une erreur. Je n'arrive pas comprendre
Y a t il un moyen de connaitre le statut de la feuille (protégée ou non)?
news:055101c39ef1$80ffa390$
Bonjour,
Il faudrait essayer avec cela, j'utilise les deux dans le
meme code et cela fonctionne :
Worksheets("Accueil").Unprotect
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True
a+
Sylvain
'sans protéger la feuille ou le classeur
Sub PasTouche(LaCellule As Range, PlageAutorisée As Range)
'Laurent Mortézai, mpfe
If Intersect(LaCellule, PlageAutorisée) Is Nothing Then
MsgBox "Vous n'avez pas la possibilité d'entrer des données sur une
cellule contenant des formules!!!"
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
End If
End Sub
et ensuite:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
PasTouche Target, Range("D6:F36,K6:L36,R6:R36,C8")
End Sub
Normalement cela devrait t'aider.Le Range("D6:F36,K6:L36,R6:R36,C8")
réprésente la plage de cellules autorisées pour une éventuelle saisie de
données
@+
"Maxime" bnr61r$irb$
Avant d'utiliser Sheets("Accueil").Unprotect, où la commande qui protège, en
sélectionnant une cellule de la feuille, je n'ai plus aucun problème!!!!
donc juste faire
Cells(1,1).select
Sheets("Accueil").Unprotect
et idem pour protéger
en tout cas merci de votre aide
"Pascal" news:
Bien que ton problème soit résolu, tu peux noter en outre que l'erreur générée par ce code :
Worksheets("Accueil").Unprotect
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True
vient du fait que la feuille protégée à nouveau n'est pas nécessairement la bonne puisque c'est celle
active au moment de l'execution ; avec cette ligne modifiée, ça devrait le faire :
Worksheets("Accueil").Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True
--
Amicales Salutations
Retirer A_S_ pour répondre.
XL97 / XL2002
"Maxime"