[EXCEL] éxécut macros sur feuille protégée

Résolu/Fermé
Furtif Messages postés 9887 Date d'inscription lundi 25 avril 2005 Statut Contributeur Dernière intervention 8 mars 2010 - 25 juin 2007 à 15:32
Acritas Messages postés 1 Date d'inscription samedi 11 mars 2023 Statut Membre Dernière intervention 11 mars 2023 - 11 mars 2023 à 15:48
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
A voir également:

1 réponse

m@rina Messages postés 21117 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 2 décembre 2024 11 364
25 juin 2007 à 15:51
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
21
Furtif Messages postés 9887 Date d'inscription lundi 25 avril 2005 Statut Contributeur Dernière intervention 8 mars 2010 928
25 juin 2007 à 15:56
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 ?
0
m@rina Messages postés 21117 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 2 décembre 2024 11 364 > Furtif Messages postés 9887 Date d'inscription lundi 25 avril 2005 Statut Contributeur Dernière intervention 8 mars 2010
25 juin 2007 à 16:10
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
0
Furtif Messages postés 9887 Date d'inscription lundi 25 avril 2005 Statut Contributeur Dernière intervention 8 mars 2010 928 > Furtif Messages postés 9887 Date d'inscription lundi 25 avril 2005 Statut Contributeur Dernière intervention 8 mars 2010
25 juin 2007 à 16:18
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.
0
m@rina Messages postés 21117 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 2 décembre 2024 11 364 > Furtif Messages postés 9887 Date d'inscription lundi 25 avril 2005 Statut Contributeur Dernière intervention 8 mars 2010
25 juin 2007 à 16:41
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
0
Furtif Messages postés 9887 Date d'inscription lundi 25 avril 2005 Statut Contributeur Dernière intervention 8 mars 2010 928 > m@rina Messages postés 21117 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 2 décembre 2024
25 juin 2007 à 16:46
Je te remercie.

Vais essayer ça dès que pas plus tard que ce soir ....

Cordialement ...
0