[EXCEL] éxécut macros sur feuille protégée
Résolu
Furtif
Messages postés
9956
Statut
Contributeur
-
Acritas Messages postés 1 Statut Membre -
Acritas Messages postés 1 Statut Membre -
Bonjour
Je cherche la syntaxe d'une commande VBA me permettant d'exécuter une macro (masquer des lignes) sur une feuille protégée par mot de passe.
Merci
--
*** @+ / Furtif ***
*** Mangez des bananes ! ***
Je cherche la syntaxe d'une commande VBA me permettant d'exécuter une macro (masquer des lignes) sur une feuille protégée par mot de passe.
Merci
--
*** @+ / Furtif ***
*** Mangez des bananes ! ***
Configuration: Windows XP Internet Explorer 6.0
1 réponse
-
Bonjour Furtif,
Il n'y a pas 36000 solutions !
Ta macro doit comporter le déverrouillage de la feuille et le verrouillage :sub insertion_ligne() ActiveSheet.Unprotect ("ton_mdp") 'ajoute une ligne Selection.EntireRow.Insert ActiveSheet.Protect ("ton_mdp") end sub
m@rina-
Bonjour et merci de ta réponse
En fait, en cherchant, j'ai trouvé ça, mais je n'arrive pas bien à l'utiliser. Certainement un problème de synthaxe.
"Utilser des macro-commandes dans une
feuille protégée.
Ce programme permet d'utiliser des macro-commandes dans une feuille
protégée par Outils, Protection.
Worksheets("Feuil1").Protect UserInterfaceOnly:=True permet de manipuler par macro une feuille protégée, tout en laissant la protection active par rapport aux manipulations de l'utilisateur.
Private Sub Workbook_Open()
Worksheets("Feuil1").Protect UserInterfaceOnly:=True
End Sub
Instruction à mettre dans Workbook_Open, cette propriété n'étant pas enregistrée avec le classeur. "
Tu en penses quoi ?
-
Re..
Eh bien j'en pense que cette macro permet de protéger la feuille à l'ouverture du classeur (sans mot de passe) et c'est tout !!!
C'est utile que si on prévoit de déprotéger régulièrement cette feuille et qu'on a peur d'oublier de la reprotéger. Mais ça ne règle pas ton problème.
Si tu veux créer une macro uniquement pour insérer des lignes dans un doc protégé, et si tu as la v2002 ou 2003 (oui 2007), il suffit que tu mettes une protection et que tu autorises l'insertion de lignes... Dans ce cas, pas besoin de macro.
S'il s'agit d'une macro qui doit contenir entre autres ce type de protection, tu peux ajouter :
Worksheets("Feuil1").Protect AllowInsertingRows:=True
Ça dépend de ce que tu veux faire exactement.
m@rina -
OK,
en fait, sur une feuille de devis, je n'utilises jamais toutes les lignes, et je souhaite masquer celles que je n'utilise pas (Qté du produit à 0) alors que la feuille est protégée.
Je sais bien détecter celà, je sais bien masquer ces lignes, mais ça coince dès que c'est protégé par mot de passe.
Je pensais que cette macro me permettrait d'exécuter des macros .. feuille protégée.
Comme cette feuille de devis est également distribuée dans un réseau, je ne peux pas la diffuser sans protection mot de passe (Outil / protection) que je tien à garder secret. -
J'avais lu "Insérer des lignes" au lieu de "masquer des lignes"...
Cela dit, ça ne change en rien le problème.
Tu reprends la première macro que je t'ai donnée et ça fonctionnera. Tu protégeras également la macro pour que personne ne voit ton mdp, et c'est OK . La macro suivante cache la ligne sélectionnée sur une feuille protégée :
sub furtif() ActiveSheet.Unprotect ("toto") Selection.EntireRow.Hidden = True ActiveSheet.Protect ("toto") end sub
Tu peux la tester en remplaçant "toto" par ton mot de passe.
m@rina -
-