Protection de cellules malgrés macros (Excel 2002)

Résolu/Fermé
PLAYA2 - 17 janv. 2013 à 14:33
PHILOU10120 Messages postés 6393 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 9 octobre 2024 - 17 janv. 2013 à 16:14
Bonjour à tous,

Je recherche une solution pour protéger des cellules en ecriture sur excel 2002, pour ça aucun problème mais j'ai deux macros qui ne peuvent se lancer lorsque la feuille est protégée => un message me demande d'oter la protection de la feuille !!!

Les macros sont des masquages de lignes sous conditions et j'ai bien penser à cocher : "Autoriser tous les utilisateurs de cette feuille à :
"utiliser filtres automatiques " et "Format de lignes" dans la protection de feuille.

L'idéal serait d'y parvenir sans créer une nouvelle macro mais je ne suis pas certaine que ce soit possible...

D'avance merci.

4 réponses

PHILOU10120 Messages postés 6393 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 9 octobre 2024 810
17 janv. 2013 à 15:32
Bonjour

Si ce n'est qu'une protection pour ne pas écraser des formules sans mot de passe

ajouter cette ligne au début de la macro pour oter la protection de la feuille

ActiveSheet.Unprotect

Et celle-ci en fin de macro pour reprotéger la feuille

ActiveSheet.Protect DrawingObjects:=False, Contents:=True, _
Scenarios:=True
2
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
17 janv. 2013 à 15:32
Bonjour,

Peut être en encadrant le code de la macro en otant la protection et en la remettant à la fin comme ceci :

ActiveSheet.Unprotect Password:="XXXXX"
.....
.....
ActiveSheet.Protect Password:="XXXXX"


A+
0
Un grand merci PHILOU10120, ça fonctionne nickel !!!

Merci également à pilas31 d'avoir pris le temps de me répondre.

Bonne journée à tous.
0
PHILOU10120 Messages postés 6393 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 9 octobre 2024 810
Modifié par PHILOU10120 le 17/01/2013 à 16:14
Bonjour

Macro avec mot de passe

mettre ceci dans le module VBA

Public varMotDePasse As String
Public varNumTentatives As Byte

Sub ControleMotDePasse(MotDePasse As String, NumTentatives As Byte)
varMotDePasse = MotDePasse
varNumTentatives = NumTentatives
fmMotDePasse.Show
End Sub
Sub TestControleMotDePasse()
Dim maVar As String
Call ControleMotDePasse("XXXXXX", 3)
maVar = Application.UserName
MsgBox "Mot de passe correct." & vbCr & "Poursuite de l'exécution.", vbOKOnly + vbInformation
End Sub

Début de la macro avec le contrôle par mot de passe

Sub glissement_hebdo()
'
' glissement_hebdo Macro
' Macro enregistrée le 17/01/2013 par Philou10120
'

Sheets("LUNDI").Select
Call ControleMotDePasse("XXXXXX", 3)
If MsgBox("Attention avez vous déjà copié les données ? celles-ci vont être écrasées !!!", vbYesNo, "") = vbNo Then
Exit Sub
End If
et la suite de votre macro


Je vous joins un extrait de fichier pour vous aider à récupérer la feuille fmMotDePasse avec la boite de dialogue à insérer dans les modules

https://www.cjoint.com/?3ArqjlnJV7i
0