Filtre par macro sur feuille protégée

Jacques25

XLDnaute Occasionnel
Bonsoir à tous,

Je rencontre un problème sur fichier que je souhaite protéger. Dans ce fichier j'ai plusieurs macro assez simple dont une qui doit faire un filtre sur une colonne dans un tableau.

J'ai regardé plein de sujet sur l'utilisation de filtre sur des feuilles protégées, quand je protège ma feuille je coche bien la case "utilisation des filtres" si je fais la manip en manuel ça marche mais avec ma macro ça ne marche pas.
Une partie des cellules du tableau filtré sont verrouillées, j'ai essayées avec des cellules complètement déverrouillées mais rien y fait.

Voici mon code :

Private Sub D3_D4_Click()
'Validation du bon remplissage de D3
If Range("CD97") <> 3 Then
UserForm5.Show ==> cette boite de dialogue n'a pas d'effet sur le tableau filtré
Exit Sub
End If
'Affichage de l'étape D4
Rows("98:160").Select
Selection.EntireRow.Hidden = False
'Affichage de bouton de commande D4_D4
Sheets("feuil1").D4_D4.Visible = True
With Sheets("feuil1").D4_D4.Top = Range("A160").Top
End With
'Synthèse de l'analyse
ActiveSheet.Range("A99:CB159").AutoFilter Field:=10, Criteria1:="<>"
End Sub

J'ai vu des solutions de Pierrot94 mais je vois pas comment les adpter.
Merci donc de votre aide.

Bonne soirée à tous
Jack
 

ERIC S

XLDnaute Barbatruc
Re : Filtre par macro sur feuille protégée

Bonsoir

dans la section Thisworkbook, essayer la macro (à adapter selon les droits de l'utilisateur et éventuel mot de passe). elle devrait permettre aux macros de s'exécuter sur feuille protégée

Private Sub Workbook_Open()
Sheets("toto").Protect Scenarios:=True, UserInterfaceOnly:=True
End Sub
 

Jacques25

XLDnaute Occasionnel
Re : Filtre par macro sur feuille protégée

Bonjour James, Eric, le forum,

Merci pour vos réponse, désolé j'ai pas pu me connecter hier soir. James dans ta solution, j'imagine que la feuille est protégée sans mot de passe, c'est un peu ce qu ime dérange... Eric j'essaye et je te redis.

Merci à tout les deux et plus généralement à ce forum qui nous permet de progresser de jours en jours.
@ plus
Jack
 

Jacques25

XLDnaute Occasionnel
Re : Filtre par macro sur feuille protégée

Re bonjour,

Je viens d'essayer les 2 solutions mais aucune des 2 ne fonctionne :

Solution de James : qd j'execute la macro il me demande le mot de passe (je veux pas que les personnes y aient accès)
Solution d'Eric : Erreur au lancement du fichier, "l'indice n'appartient pas à la sélection" (bien sûr à la place de toto j'ai mis mon mot de passe)

Avez vous d'autres pistes que je pourrais explorer?

Merci de votre aide
 

GeoTrouvePas

XLDnaute Impliqué
Re : Filtre par macro sur feuille protégée

Bonjour à tous les trois,

Si tu veux inclure ton mot de passe dans ta macro, ce n'est pas toto qu'il faut remplacer puisque toto désigne le nom de ta feuille. D'où l'erreur "l'indice n'appartient pas à la sélection" que tu as obtenue puisque je suppose que tu n'as pas de feuille nommée tot dans ton classeur.

Pour inclure le mot de passe dans ta macro, utilise cette ligne :

Sheets("LeNomDeTaFeuille").Protect UserInterfaceOnly:=True, Password:="TonMotDePasse", Scenarios:=True

Une fois protégé de cette manière, tu devrais pouvoir utiliser les filtres.
 

Jacques25

XLDnaute Occasionnel
Re : Filtre par macro sur feuille protégée

Merci pour vos message,

Trop de précipitation de ma part, j'ai pas fais gaffe que c'était le nom de la feuille...
Un essai en début d'après midi et je vous tiens au courant

Encore merci pour toute l'aide que vous nous procurrez.
 

Jacques25

XLDnaute Occasionnel
Re : Filtre par macro sur feuille protégée

re bonjour tout le monde,

C'est OK ça marche et pour ceux qui liront le fil voilà le code finalisé :

Private Sub D3_D4_Click()
'Suppression de la protection pour filtre
Sheets("Feuil1").Unprotect Password:="léon"
'Validation du bon remplissage de D3
If Range("CD97") <> 3 Then
UserForm5.Show
Exit Sub
End If
'Affichage de l'étape D4
Rows("98:160").Select
Selection.EntireRow.Hidden = False
'Affichage de bouton de commande D4_D4
Sheets("feuil1").D4_D4.Visible = True
With Sheets("feuil1").D4_D4.Top = Range("A160").Top
End With
'Synthèse de l'analyse
ActiveSheet.Range("A99:CB159").AutoFilter Field:=10, Criteria1:="<>"
'Remise en place de la protection
Sheets("Feuil1").Protect UserInterfaceOnly:=True, Password:="léon", Scenarios:=True
End Sub

Merci à tous de votre aide
@ plus
Jack
 

chris

XLDnaute Barbatruc
Re : Filtre par macro sur feuille protégée

Bonjour

La protection peux permettre à l'utilisateur de filtrer (case à cocher lors de la protection).
Je n'ai pas testé mais si cette case est cochée, le filtrage par macro devrait fonctionner...
 

Jacques25

XLDnaute Occasionnel
Re : Filtre par macro sur feuille protégée

Salut Chris, le forum,

C'est vrai que si la case autoriser filtre est cochée le filtre est réalisable en manuel par l'utilisateur. Si je l'automatise par macro ça ne fonctionnait plus (en tout cas dans mon code)
J'ai réussi grâce à votre aide à contourner cette difficulté et je vous en remercie.

Bonne journée à tous

Jack
 

Discussions similaires

Réponses
16
Affichages
890

Statistiques des forums

Discussions
314 631
Messages
2 111 391
Membres
111 120
dernier inscrit
Barthelemius