Protéger une feuille sans empécher les macros (et modifiier certains paramètres)

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

LUCILLE

XLDnaute Nouveau
Bonjour,

Je dois créer un fichier Excel pour le suivi du plan d'action de notre projet d'établissement.

But de ma demande : Créer un fichier Excel avec des macros simples (type filtres automatiques) protégée avec des plages accessibles pour certains pilotes.

Je suis débutante en macro et je rame un peu...

Après qq recherches voici le résultat :

J'ai ma feuille Excel avec mes macros. Pour que les macros restent actives j'ai protégé la feuille avec cette macro dans Thisworkbook :

Private Sub Workbook_Open()
Sheets("PROJET D'ETABLISSEMENT").Protect Password:="1234", userinterfaceonly:=True
End Sub

Pour l'accessibilité des pilotes à certaines plages j'ai compris la manip par contre je bloque sur les "options" de protection.

Avec la macro dans thisworkbook je ne sais comment laisser la possibilité aux utilisateurs de modifier le format des cellules (changement de couleur par exemple) et la possibilité de faire des filtres automatiques.

C'est sûrement tout bête mais...

Merci à vous
 
Re : Protéger une feuille sans empécher les macros (et modifiier certains paramètres)

Bonjour,

essaye peut être comme suit :
Code:
Private Sub Workbook_Open()
Sheets("PROJET D'ETABLISSEMENT").Protect Password:="1234", userinterfaceonly:=True, _
    AllowFormattingCells:=True, AllowFiltering:=True
End Sub
bon après midi
@+
 
Re : Protéger une feuille sans empécher les macros (et modifiier certains paramètres)

Re,

peut être lieu de rajouter ceci :

Code:
Sheets("PROJET D'ETABLISSEMENT").EnableAutoFilter = True

ou coder comme ceci :
Code:
Private Sub Workbook_Open()
With Sheets("PROJET D'ETABLISSEMENT")
    .EnableAutoFilter = True
    .Protect Password:="1234", userinterfaceonly:=True, _
        AllowFormattingCells:=True, AllowFiltering:=True
End With
End Sub
 
Re : Protéger une feuille sans empécher les macros (et modifiier certains paramètres)

Super merci bcp, le premier codage fonctionne très bien.

Une question subsidiaire :

Sur certains PC le logiciel demande à l'ouverture si on veut activer ou non les macros. J'imagine que si l'utilisateur dit non mon document n'est plus protégé..

Est ce qu'il y a un moyen de "l'obliger" à dire oui?

Merci encore.
 
Re : Protéger une feuille sans empécher les macros (et modifiier certains paramètres)

Bonjour LUCILLE, Pierrot93 et le forum,

Déjà merci Pierrot93 pour ton astuce. Je garde en mémoire.

LUCILE effectivement si l'utilisateur n'active pas les macros la macro Workbook_Open ne sera pas activée.

Pour ma part voici ce que je fais si l'utilisateur n'active pas les macros:
Dans le classeur les onglets utiles à l'utilisateur sont masqués ce qui rend le classeur inutilisable sauf s'il active les macros, dans ce cas je rend visible les onglets via Workbook_Open.
A la fermeture du classeur il faut penser à masquer les onglets (via macros) pour le prochain utilisateur.
En d'autre terme je rends inutilisable le classeur si les macros ne sont pas activées. Dans ce cas je préviens l'utilisateur en affichant "Vous devez activer les macros pour que le classeur soit utilisable".

Bonjour gilbert_RGI, LUCILLE je viens de regarder le lien de gilbert_RGI et le principe est le même que le miens. A+
 
Dernière édition:
Re : Protéger une feuille sans empécher les macros (et modifiier certains paramètres)

Merci à tous pour vos réponses. J'ai essayé le codage proposé dans le lien mais je ne sais pas comment le combiner avec la précédente macro.

Avec ceci comme codage :

Private Sub Workbook_Open()

Application.ScreenUpdating = False
For Each sh In Sheets
sh.Visible = True
Next sh
Sheets(1).Visible = xlVeryHidden

Sheets("PROJET D'ETABLISSEMENT").Protect Password:="1234", userinterfaceonly:=True, _
AllowFormattingCells:=True, AllowFiltering:=True

End Sub


Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.ScreenUpdating = False
Sheets(1).Visible = True

For i = Sheets.Count To 2 Step -1
Sheets(i).Visible = xlVeryHidden
Next i
End Sub

J'ai un message d'erreur d'éxecution 1004 en ouvrant le fichier et en le fermant.

Merci
 
Re : Protéger une feuille sans empécher les macros (et modifiier certains paramètres)

Lorsque je fait le débogage il me surligne ça en jaune :

Sheets(1).Visible = xlVeryHidden

Dois je renommer ma première feuille?

Est ce que cela vient du fait que j'ai 7 feuilles?

Merci
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour