Protection à l'ouverture de certaines feuilles

  • Initiateur de la discussion Initiateur de la discussion Piro
  • Date de début Date de début

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 !

Piro

XLDnaute Nouveau
J'ai une macro dans Thisworkbook qui me permet d'utiliser les filtres même si la feuille est protégé :

Private Sub Workbook_Open()
' Pour utiliser le filtre sur une feuille protégée :
ActiveSheet.EnableAutoFilter = True
ActiveSheet.Protect contents:=True, userInterfaceOnly:=True
End Sub

Mon problème c'est que seulement 2 feuilles sur trois doivent être protégées. Comment faire pour que la troisième feuille ne soient pas protégé à l'ouverture sans devoir mettre cette feuille dans un autre chiffrier ?

Merci d'avance
 
Re : Protection à l'ouverture de certaines feuilles

Bonjour Piro

essaye peut être ainsi, si j'ai bien compris :

Code:
Private Sub Workbook_Open()
Dim f() As Variant, i As Byte
'nom des feuilles devant être protégées 
f = Array("Feuil1", "Feuil2")
For i = 0 To UBound(f)
    With Sheets(f(i))
        .EnableAutoFilter = True
        .Protect contents:=True, userInterfaceOnly:=True
    End With
Next i
End Sub

bonne fin d'après midi
@+
 
Re : Protection à l'ouverture de certaines feuilles

Il y a un erreur que je ne comprend pas à "with sheets"

Private Sub Workbook_Open()
Dim f() As Variant, i As Byte
'nom des feuilles devant être protégées
f = Array("Feuil2", "Feuil5")
For i = 0 To UBound(f)
With Sheets(f(i))
.EnableAutoFilter = True
.Protect contents:=True, userInterfaceOnly:=True
End With
Next i
End Sub
 
Re : Protection à l'ouverture de certaines feuilles

Bonjour Piro

pas d'erreur chez moi (Excel 2003), ce code fonctionne, mais modifie peut être ainsi :

Code:
Option Explicit
Private Sub Workbook_Open()
Dim f() As Variant, i As Byte
'nom des feuilles devant être protégées
f = Array("Feuil1", "Feuil2")
For i = [B][COLOR="Red"]LBound(f) [/COLOR][/B]To UBound(f)
    With Sheets(f(i))
        .EnableAutoFilter = True
        .Protect contents:=True, userInterfaceOnly:=True
    End With
Next i
End Sub

bonne journée
@+
 
Re : Protection à l'ouverture de certaines feuilles

toujours en erreur :

Erreur d'exécution '-2147352565 (8002000b)':
Le focus ne peut être déplacé sur le contrôle car celui-ci est invisible, non activé, ou d'un type n'acceptant pas le focus

???
 
Re : Protection à l'ouverture de certaines feuilles

Bonjour Piro,

comprends pas, chez moi ce code fonctionne(excel 2003)... mets le fichier en pièce jointe, sans donnée confidentielle, ce sera plus facile pour t'aider.

bonne journée
@+
 
Re : Protection à l'ouverture de certaines feuilles

Re,

fonctionne chez moi (excel 2003) avec des noms de feuille valides :

Code:
f = Array("[B][COLOR="Red"]Chemin de fer[/COLOR][/B]", "[COLOR="red"][B]Besoins[/B][/COLOR]")

bon après midi
@+
 
Re : Protection à l'ouverture de certaines feuilles

Enfin, ça marche ! L'erreur était (évidemment) la mienne...

Le problème était que j'écrivais le nom "FeuilX" à coté du nom complet entre parenthèse dans l'utilitaire VB.

Merci beaucoup !!!
 
- 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

Réponses
8
Affichages
1 K
Retour