Macro pour proteger classeur.

sebastien450

XLDnaute Occasionnel
Bonjour a tous déja.
J'ai fait un classeur excel assez elaborer, avec l'aide de certains d'entre vous. Je doit donc maintenantn le mettre en réseau et je me demande comment le proteger. J'aimerais une macro qui protege mon classeur, que avec l'appui sur le bouton "proteger/deproteger" il s'execute un certains nombres d'opérations a savoir:
l'ensemble du classeur comporte 6 onglets
Pour le 1er onglet il faudrais que cela me protege tous, sauf G5:G42; I5:J42. Il faudrais également masquer la colonne W.

Pour le second onglet, il faudrais tous proteger et masque H et I
Pour le Troisieme onglet, il faudrait tous proteger
Pour le quatrieme onglet il faudrait masquer, B,C,E,F,H,I,K,L
Pour le cinquieme et 6eme onglet, je le laisse libre d'acces.

Quelqu'un a t'il une idée sur comment proceder pour un début déja.
Je sais que cela est relativement complexe sans plus d'informations mais mon fichier et bien trop gros meme en étant zipé et n'apporterais pas plus d'informations utiles.
Merci
 

jeanpierre

Nous a quitté
Repose en paix
Re : Macro pour proteger classeur.

Bonjour sebastien450, le forum,

Une première question : y'a-t'il des macros qui travaillent sur les feuilles dans ce classeur ?

Si oui, il faut simplement, en début d'appel de la macro, de déprotéger la feuille et avant de sortir la reprotéger.

S'il n'y a pas de macros, c'est plus simple, tu fais (une seule fois) tout ce que tu viens d'annoncer, pour chaque feuille, sachant qu'il te faut déprotéger les cellules que tu souhaites accéssibles.

Pour ce faire, onglet 1, tu selectionnes G5:G42 et dans Format/Cellules l'onglet Protection tu décoches Vérouillé, pareil pour I5:J42. Pour la colonne W, tu la selectionnes, clic droit et Masquer. Pour finir, dans Outils/Protection et protéger la feuille avec ou sans mot de passe.

Tu pratiques à l'identique pour les 3 autres onglets.

Bon dimanche.

Jean-Pierre
 

sebastien450

XLDnaute Occasionnel
Re : Macro pour proteger classeur.

Oui il y a des macro qui travaillent. Par contre il faut que tu sache que:
il y a un utilisateur qui se sert des macro, pour celui ci je compte donner une base ou rien n'ai verouillé ni proteger. Puis vient un utilisateur ou il renseigne des champs, c'est pour lui que je souhaite vérouiller.
Ensuite cela repasse a l'utilisateur 1 qui va actionner une macro via un bouton.
Les personnes a qui s'applique se fichier sont trés limités sur Excel donc un bouton pour desactiver/activer la protection me parait plus simple.
merci pour tes conseil je vais donc me servir de l'enregistreur de Macro!
mais comment faire pour que ma feuille ne soit pas protegée pour l'application des macros?
 

jeanpierre

Nous a quitté
Repose en paix
Re : Macro pour proteger classeur.

Re,

Dans chaque procédure avec, et juste après le Sub : ActiveSheet.Unprotect ("ton mot de passe")

et, par exemple pour réportéger, juste avant le End : ActiveSheet.Protect password:="ton mot de passe" (deux ecemples d'écriture)

Pour la différentiation entre utilisateurs, j'ai pas trop saisi....

De toutes façon, il faut déjà appliquer, sur tes différents onglets, la procédure manuelle que je t'ai indiquée. Il est inutile de la mettre en macro, puisqu'elle ne servira qu'une fois et elle serait bien plus longue à écrire que la réalisation à la mano.
 

sebastien450

XLDnaute Occasionnel
Re : Macro pour proteger classeur.

J'ai peur de ne pas saisir:
Je souhaite qu'il y ai un bouton pour proteger/ deproteger ma feuille car j'ai 3 utilisateurs dont 2 qui ont un acces total mais un ne l'a pas. Ce dernier ne rentre que des données et n'utilise pas les macros. Mais le classeur étant en partage il faut que les autres qui ouvre le meme classeur puisse déproteger la feuille. Je souhaite une macro car il y a d'autre classeur a renseigner et car les utilisateurs savent a peine tapper sur un clavier (j'exagere mais bon..).
 

sebastien450

XLDnaute Occasionnel
Re : Macro pour proteger classeur.

J'utilise ce code donné sur un des liens:
Sub Macroprotegerfeuillemotpasse123()
'
' Macroprotegerfeuillemotpasse123 Macro
With Sheets("RPUR Base B-9009")
.EnableOutlining = True
.Protect Password:="toto", userinterfaceonly:=True
End With
End Sub

Mais comment faire pour executer l'action inverse, cad deproteger avec le mot de passe "toto"?
 

Staple1600

XLDnaute Barbatruc
Re : Macro pour proteger classeur.

Re


A essayer

Code:
 Sub MacroDEprotegerfeuillemotpasse123()
'
' Macroprotegerfeuillemotpasse123 Macro
With Sheets("RPUR Base B-9009")
    .EnableOutlining = True
    .UnProtect Password:="toto"
End With
End Sub
 
Dernière édition:

jeanpierre

Nous a quitté
Repose en paix
Re : Macro pour proteger classeur.

Re,

Je ne t'ai pas proposé Userinterfaceonly car je ne la touvais pas très adaptée à ton cas, et à y réfléchir ma soluce n'est guère mieux.

Je comprends un peu mieux suite à ton dernier message. Ce qu'il te faut, c'est une ouverture par mot de passe en foncion des utilisateurs. Certains auraient le bouton Déprotection/Protection, d'autres non. (plein de fils là dessus)

Seulement tu parles de réseau et de partage, et j'ai bien peur que les macros, ou certaines, ne soient plus accessibles dans ce cas. Je n'ai plus de réseau à dispo.je ne peux donc pas faire les essais.

Attendre donc d'autres avis... je ne peux faire mieux à l'instant.
 

sebastien450

XLDnaute Occasionnel
Re : Macro pour proteger classeur.

Aprés concernant la mise en reseau cela va varier, je pense là a un bouton qui permet de deproteger et cela ouvre une boite demandant le mot de passe! Quelqu'un sais faire cela? Sinon je metrrait une protection automatique des que le classeur se ferme je pense savoir le faire!


Je viens de tester la deprotection et ca ne marche pas...
 
Dernière édition:

sebastien450

XLDnaute Occasionnel
Re : Macro pour proteger classeur.

Bon j'ai reussi ce que je voulais faire je poste donc la solution:
J'ai fait une macro pour deproteger qui est toute simple:
ActiveSheet.Unprotect

Columns("W:W").ColumnWidth = 9.43
Range("A2:W2").Select
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
Selection.UnMerge
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge
End Sub

Cela me fait apel a la boite de dialogue automatiquement qui me demande le mot de passe pour deproteger.
Pour proteger, j'ai tout simplementmis le code suivant dans Whisworbook:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Range("A2:W2").Select
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
Selection.UnMerge
Range("A2:V2").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge

Columns("W:W").Select
Selection.EntireColumn.Hidden = True

With Sheets("RPUR Base B-9009")
.EnableOutlining = True
.Protect Password:="123", userinterfaceonly:=True
End With

Voila!
Merci pour vos réponse, je continue mes modif sur les autres onglets.
 

Discussions similaires

Statistiques des forums

Discussions
312 332
Messages
2 087 361
Membres
103 530
dernier inscrit
Chess01