Filtre automatique + Protection

Le
Eric549
bonjour

ce groupe m'a permis de découvrir le code suivant donné par AV
que je remercie

Je suis sous excel 2003 - Toutes les feuilles du classeur ont un
filtre automatique sauf deux
For Each sh2 In ActiveWorkbook.Sheets
Select Case sh2.Name
Case Is <> "Récap_IDE"
''''' FITRE UF 7417

sh2.[a12:Am1000].AutoFilter Field:=1, Criteria1:="=" &
Sheets("PARAM").Cells(3, 2).Value

sh2.[a12:Am1000].AutoFilter Field:=3, Criteria1:="=" &
Sheets("PARAM").Cells(3, 1).Value
End Select
Next


Dés l'instant, où ces feuilles sont protégées , les filtres
automatiques ne fonctionnent plus

Le code suivant, si j'ai bien compris permet de passer outre cette
protection
mais comment adapter ce code a toutes les feuilles sauf deux
merci pour vos réponses

Private Sub Workbook_Open()
> With Sheets("Feuil1")
> .EnableAutoFilter = True
> .Protect Contents:=True, UserInterfaceOnly:=True
> End With
> End Sub
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
FdeCourt
Le #21465601
Salut,

Avec ce bout de code ? :

Private Sub Workbook_Open()
For Each sh In ThisWorkbook.Sheets
Debug.Print sh.Name
If sh.Name With sh
.EnableAutoFilter = True
.Protect Contents:=True, UserInterfaceOnly:=True
End With
End If
Next
End Sub

Cordialement,

F.
Eric549
Le #21466131
On 30 mar, 13:31, FdeCourt
Salut,

Avec ce bout de code ? :

 Private Sub Workbook_Open()
    For Each sh In ThisWorkbook.Sheets
        Debug.Print sh.Name
        If sh.Name             With sh
                 .EnableAutoFilter = True
                 .Protect Contents:=True, UserInterfa ceOnly:=True
            End With
        End If
  Next
  End Sub

Cordialement,

F.



merci pour ta réponse

Hélas,

J'ai le message suivant :

Vous ne pouvez pas exécuter cette commande sur un protégée.
Pour utiliser cette commande, vous devez ôter la protection de cette
feuille.

Merci pour vos réponse
Eric
FdeCourt
Le #21466091
Ok, alors supprimons la protection de la feuille, puis remettons la :
Private Sub Workbook_Open()
For Each sh In ThisWorkbook.Sheets
Debug.Print sh.Name
If sh.Name With sh
.Unprotect
.EnableAutoFilter = True
.Protect Contents:=True, UserInterfaceOnly:=True
End With
End If
Next
End Sub

Lance le une première fois, puis ensuite enlève le .Unprotect.

Cordialement,

F.
Eric549
Le #21466411
On 30 mar, 15:04, FdeCourt
Ok, alors supprimons la protection de la feuille, puis remettons la :
 Private Sub Workbook_Open()
    For Each sh In ThisWorkbook.Sheets
        Debug.Print sh.Name
        If sh.Name             With sh
                 .Unprotect
                 .EnableAutoFilter = True
                 .Protect Contents:=True, UserInterfa ceOnly:=True
            End With
        End If
  Next
  End Sub

Lance le une première fois, puis ensuite enlève le .Unprotect.

Cordialement,

F.



merci pour cette solution, mais j'ai toujours le même message d'erreur
pourtant , j'ai suivi cette démarche à la lettre
michdenis
Le #21466571
Bonjour,

Pour déprotéger tes feuilles, si tu utilises un mot de passe,
tu dois l'inclure dans la procédure. En fait, remplace à
2 endroits "MotDePasse" par le tien.
J'espère que tu utilises le même mot de passe pour
chacune des feuilles...sinon ce type de procédure devra
être adaptée.

'------------------------------------------
Private Sub Workbook_Open()
For Each sh In ThisWorkbook.Sheets
If sh.Name With sh
.Unprotect "MotDePasse" '<<===indique ton mot de passe si requis
.EnableAutoFilter = True
.Protect "MotDePasse", Contents:=True, UserInterfaceOnly:=True
End With
End If
Next
End Sub
'------------------------------------------
FdeCourt
Le #21467191
Merci Michdenis ;)
Eric549
Le #21470611
On 30 mar, 16:15, "michdenis"
Bonjour,

Pour d prot ger tes feuilles, si tu utilises un mot de passe,
tu dois l'inclure dans la proc dure. En fait, remplace
2 endroits "MotDePasse" par le tien.
J'esp re que tu utilises le m me mot de passe pour
chacune des feuilles...sinon ce type de proc dure devra
tre adapt e.

'------------------------------------------
Private Sub Workbook_Open()
    For Each sh In ThisWorkbook.Sheets
        If sh.Name             With sh
                 .Unprotect "MotDePasse"    '<<= ==indique ton mot de passe si requis
                 .EnableAutoFilter = True
                 .Protect "MotDePasse", Contents:=Tru e, UserInterfaceOnly:=True
            End With
        End If
 Next
 End Sub
'------------------------------------------  



Ok merci pour ce comlément d'information
Tu m'as bien aidé
merci encore
Bonne journée à tous
Publicité
Poster une réponse
Anonyme