propriété Locked de la classe Range ?

usul

XLDnaute Occasionnel
bonjour le forum

j'ai un petit pb urgent à résoudre :
Code:
Public Sub protection()

For i = 2 To 13

Worksheets(i).Range('B2:D4').Locked = False
Worksheets(i).Range('D11:D11').Locked = False
Worksheets(i).Range('D15:G45').Locked = False
Worksheets(i).Range('B13:B13').Locked = False
Worksheets(i).Range('O15:P45').Locked = False

If i = 2 Then
Worksheets(i).Range('M11:N11').Locked = False
End If

Worksheets(i).Protect Password:='glaglagla'

Next i

End Sub

voici une petite macro qui fonctionnait bien
mais maintenant elle me dit :
Impossible de définir la propriété Locked de la classe Range

je n'ai fait que modifier For i = 2 To 13 (avant c'était 1 to 12)

merci pour votre aide :)
 

usul

XLDnaute Occasionnel
salut
j'avais un classeur de 12 feuilles (1/mois)
j'ai rajouté une feuille que j'ai placée en 1ère position qui contient juste du texte et une formule de calcul reprenant des éléments des 12 autres feuilles (ces éléments sont dans des cellules non protégées)

c'est pourquoi j'ai voulu modifier i = 1 to 12
pour mettre i = 2 to 13

mais je ne sais pas si cela a un rapport

merci pour l'aide apportée
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Eric, Usul, le Forum

Même réaction que toi, Eric. En prime si le passage de cette macro a lieu après un premier passage (Feuilles Protected) il faut d'abord les déprotéger...

Voici ce que je propose (en partant de la feuille Index 2 à la dernière feuille du classeur quelque soit le nombre de feuilles, puisque VBA va les compter)

Option Explicit

Sub Protection()
Dim i As Byte

For i = 2 To ThisWorkbook.Worksheets.Count

   
With Worksheets(i)
    .Unprotect Password:='glaglagla'
           
If i = 2 Then
                .Range('M11:N11').Locked =
False
           
End If
       
        .Range('B2:D4').Locked =
False
        .Range('D11').Locked =
False
        .Range('D15:G45').Locked =
False
        .Range('B13').Locked =
False
        .Range('O15:p45').Locked =
False
        .Protect Password:='glaglagla'
   
End With

Next i

End Sub

Bon Après Midi
[ol]@+Thierry[/ol]
 

usul

XLDnaute Occasionnel
merci pour les réponses :)

bon petit pb :ça ne me protège que les 2 premières feuilles
celles de janvier et de fevrier

la feuille rajoutée (et qui est en 1ère position) est la feuille 13 dans le VBE elle est protégée indépendamment des autres

merci
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir

Si tu as des feuilles protégées indépendemment (munuellement) il faut au moins synchroniser le mot de passe qui est 'Case Sensitive'.

Sinon si tu essaie sur un classeur vierge le code proposé, il fonctionne sans souci sur 10 ou 50 feuilles et ne protègera qu'à partir de la seconde feuille (index 2) c'est à dire à partir du second onglet en partant de la droite (Feuille non visibles comptées)

Bonne soirée
[ol]@+Thierry[/ol]

EDITION !!!

Erratum ! Lire 'partir du second onglet en partant de la Gauche' ! ;-)

Message édité par: _Thierry, à: 06/12/2005 08:23
 

usul

XLDnaute Occasionnel
Salut le forum

desolé Thierry je viens de ré-essayer sur un classeur vide et c'est toujours pareil : la protection n'est active que pour les onglets en 2ème et 3ème position

au fait j'ai excel 2000

et je ne peux pas mettre de fichier exemple (il fait 620 Ko) sauf à supprimer la majorité des feuilles ce qui n'aurait plus d'intérêt

merci pour l'aide apportée
 

Discussions similaires

Statistiques des forums

Discussions
312 357
Messages
2 087 573
Membres
103 598
dernier inscrit
f-laurent