Rechercher : dans
Par :

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

Dernière réponse le 25 jun 2007 à 16:46:55 Furtif, le 25 jun 2007 à 15:32:26 
 Signaler ce message aux modérateurs

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 ! ***

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « [EXCEL] éxécut macros sur feuille protégée » dans :
Protéger vos documents Word contre les macrovirus VoirQu'est-ce qu'un virus macros (ou macrovirus) ? Quels sont les symptômes d'une infection par un virus macros ? Quelles en sont les conséquences ? Comment s'en protéger ? Première solution Deuxième solution Troisième solution Quatrième...
Télécharger MOREFUNC (Macro complémentaire EXCEL) VoirMorefunc est une macro complémentaire proposant 67 nouvelles fonctions de feuille de calcul pour Excel. Ces fonctions sont compatibles avec Excel 95 à 2007. Elles ne sont pas portables sur d'autres plate-formes que Windows, ni sur d'autres...

1

m@rina, le 25 jun 2007 à 15:51:30
  • +1

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

Répondre à m@rina

2

Furtif, le 25 jun 2007 à 15:56:21

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 ?
*** @+ / Furtif ***
*** Mangez des bananes ! ***

Répondre à Furtif

3

m@rina, le 25 jun 2007 à 16:10:53

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

Répondre à m@rina

4

Furtif, le 25 jun 2007 à 16:18:25

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. *** @+ / Furtif ***
*** Mangez des bananes ! ***

Répondre à Furtif

5

m@rina, le 25 jun 2007 à 16:41:14
  • +1

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

Répondre à m@rina

6

 Furtif, le 25 jun 2007 à 16:46:55

Je te remercie.

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

Cordialement ... *** @+ / Furtif ***
*** Mangez des bananes ! ***

Répondre à Furtif