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

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
 

Pierrot93

XLDnaute Barbatruc
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
@+
 

Pierrot93

XLDnaute Barbatruc
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
 

LUCILLE

XLDnaute Nouveau
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.
 

coco_lapin

XLDnaute Impliqué
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:

LUCILLE

XLDnaute Nouveau
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
 

LUCILLE

XLDnaute Nouveau
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
 

Discussions similaires

Statistiques des forums

Discussions
312 321
Messages
2 087 265
Membres
103 501
dernier inscrit
talebafia