Déprotéger une feuille avec un moto de passe

F

Fabien

Guest
Salut

J'ai réalisé des macro pour ajouter des lignes, mais j'ai protégé ma feuille par un mot de passe
Donc ma macro ne fonctionne plus qu'en ma feuille est protégé
J'ai ajouté au début "ActiveSheet.Unprotect"
mais il m'ouvre une fenetre en me demandant le mot de passe

En gros je ne sais pas trop comment protéger ma feuille et faire fonctionner ma macro....

Merci au PRO
 
C

CBernardT

Guest
Bonsoir Fabien

Si tu souhaites ne pas avoir de mot de passe à saisir lors du lancement d'une macro, la déprotection de la feuille active avant l'exécution proprement dite de la macro est à réaliser, à l'issue, la protection de la feuille est à remettre en place.

Cela donne une macro de ce style :

Sub DeproMacroRepro()
' Deprotection de la feuille active, le mot de passe est "cerise"
With ActiveSheet
.EnableSelection = xlNoRestrictions
.Unprotect Password:="cerise" 'Mot de passe à mettre en place
End With
'
'
'Mettre ici le nom de la Macro !
'
'
' Reprotection de la feuille active
With ActiveSheet
.EnableSelection = xlNoSelection
.Protect Password:="cerise", Contents:=True, UserInterfaceOnly:=True, Scenarios:=True
End With
End Sub

Cordialement

CBernardT
 
F

Fabien

Guest
Salut

Alors j'ai essayé, mais ca na pas l'air de fonctionner.
J'ai essayé de tester que la déprotection pour voir si ca déprotegeait mais ce n'est pas le cas
Mais je vais en dire plus car pour mon problème je crois qu'il y a une autre solution.
Sur la feuille 1 je rentre des valeurs et en cliquant sur l'onglet de la feuille 2 je vois mon tableau trier
ma macro fonctionne bien mais quand je protège ma feuille il ne fonctionne plus. Sur cette feuille l'opérateur n'a absolument rien à faire (qu'à l'imprimer)
ma macro de tri est

Private Sub Worksheet_Activate()
Worksheets("Equipe").Range("C6:J15").Sort _
Key1:=Worksheets("Equipe").Range("D6"), _
Key2:=Worksheets("Equipe").Range("H6")

End Sub
Mais mon collègue ma di qu'il croyait qu'on pouvait tri une feuille protégée avec une autre fonction.

Merci pour ta réponse rapide.
A+
 
C

CBernardT

Guest
Bonsoir Fabien

Désolé, je n'étais plus sur le forum.

La macro d'un tri sur feuille protégée peut s'effectuer de deux façon :

1- Sur les versions récentes d'Excel, si la feuille est protégée avec l'option tri autorisé, il suffit d'effectuer le tri sans déprotégé ;
2- Sur les versions anciennes, avant 2002, on peux utiliser la macro suivante, à mettre dans le module de feuille :

Private Sub Worksheet_Activate()
' Deprotection de la feuille active, le mot de passe est "cerise"
With ActiveSheet
.EnableSelection = xlNoRestrictions
.Unprotect Password:="cerise" 'Mot de passe à mettre en place
'
'Macro de tri croissant
Range("C6:J15").Sort Key1:=Range("D6"), Order1:=xlAscending, _
Key2:=Range("H6"), Order2:=xlAscending
'
' Reprotection de la feuille active
.EnableSelection = xlNoSelection
.Protect Password:="cerise", Contents:=True, UserInterfaceOnly:=True, Scenarios:=True
End With
End Sub

Cordialement

CBernardT
 
F

Fabien

Guest
EXCELLENT Merci beaucoup
Justement sur une version récente j'avais compris mais les versions anciennes ca ne fonctionnait plus

Juste un petit détail je veux le trier en décroissant
Et maintenant si quelqu'un va dans les macro il voit mon mot de passe
Puis je protéger les macro?
Et j'ai un autre souci, j'ai une autre macro qui fonctionne (ajoute des lignes/supprime des lignes) mais si je m'amuse avec, la taille de mon fichier énormément, je pense donc quel doit etre mal écrit.
Je tend dit plus sur un nouveau message

MERCI encore mon prof...
 

Discussions similaires

Statistiques des forums

Discussions
312 347
Messages
2 087 500
Membres
103 563
dernier inscrit
samyezzehar