Propriété locked de la classe Range

Bonjour à nouveau,

Les choses avancent ici,

Je souhaite rendre certaines plages protégée.

Voici le code

Private Sub UF01OUI_Click()

Range("J6:N64").Select ' Sélectionne la plage

Selection.Locked = False ' Dévérouille la sélection

For Each c In Range("J2") ' Pour chaque cellules dans la plage "J2"

If IsDate(c) Then ' Si est un valeur de type date

DT01 = Weekday(c) ' Met la valeur assosié au jour 1_7 dans la variable DT01

End If ' Fin de condition SI

Next '

If DT01 = 5 Then ' Si le jour est un Jeudi

Range("J6").Value = "='V:\Nathalie\Feuilles de temps sauvegarde\Gré à Gré\[Electricite - Modèle.xls]640'!$AD$13" '

Range("J7").Value = "='V:\Nathalie\Feuilles de temps sauvegarde\Gré à Gré\[Electricite - Modèle.xls]640'!$AD$14"

Range("J8").Value = "='V:\Nathalie\Feuilles de temps sauvegarde\Gré à Gré\[Electricite - Modèle.xls]640'!$AD$15"

Range("J9").Value = "='V:\Nathalie\Feuilles de temps sauvegarde\Gré à Gré\[Electricite - Modèle.xls]640'!$AD$16"

Range("J10").Value = "='V:\Nathalie\Feuilles de temps sauvegarde\Gré à Gré\[Electricite - Modèle.xls]640'!$AD$17"

Range("J11").Value = "='V:\Nathalie\Feuilles de temps sauvegarde\Gré à Gré\[Electricite - Modèle.xls]640'!$AD$20"

Range("J12").Value = "='V:\Nathalie\Feuilles de temps sauvegarde\Gré à Gré\[Electricite - Modèle.xls]640'!$AD$18"

Range("J13").Value = "='V:\Nathalie\Feuilles de temps sauvegarde\Gré à Gré\[Electricite - Modèle.xls]640'!$AD$21"

Range("J14").Value = "='V:\Nathalie\Feuilles de temps sauvegarde\Gré à Gré\[Electricite - Modèle.xls]640'!$AD$22"

Range("K6").Value = "='V:\Nathalie\Feuilles de temps sauvegarde\Gré à Gré\[Electricite - Modèle.xls]640'!$AE$13" '

Range("K7").Value = "='V:\Nathalie\Feuilles de temps sauvegarde\Gré à Gré\[Electricite - Modèle.xls]640'!$AE$14"

Range("K8").Value = "='V:\Nathalie\Feuilles de temps sauvegarde\Gré à Gré\[Electricite - Modèle.xls]640'!$AE$15"

Range("K9").Value = "='V:\Nathalie\Feuilles de temps sauvegarde\Gré à Gré\[Electricite - Modèle.xls]640'!$AE$16"

Range("K10").Value = "='V:\Nathalie\Feuilles de temps sauvegarde\Gré à Gré\[Electricite - Modèle.xls]640'!$AE$17"

Range("K11").Value = "='V:\Nathalie\Feuilles de temps sauvegarde\Gré à Gré\[Electricite - Modèle.xls]640'!$AE$20"

Range("K12").Value = "='V:\Nathalie\Feuilles de temps sauvegarde\Gré à Gré\[Electricite - Modèle.xls]640'!$AE$18"

Range("K13").Value = "='V:\Nathalie\Feuilles de temps sauvegarde\Gré à Gré\[Electricite - Modèle.xls]640'!$AE$21"

Range("K14").Value = "='V:\Nathalie\Feuilles de temps sauvegarde\Gré à Gré\[Electricite - Modèle.xls]640'!$AE$22"

End If ' Fin de la condition SI

Range("J2:N64").Calculate ' Transfert les données liées.

Range("J6:N64").Select ' Sélectionne la plage

Selection.Locked = True ' Vérouille la sélection

UF01.Hide ' Ferme la boite de dialogue

End Sub ' Fin du Scipt Bouton_OUI

À la ligne :

Range("J6:N64").Select ' Sélectionne la plage

Selection.Locked = False ' Dévérouille la sélection

Le programe s'interrompt et me donne ce message d'erreur : "Impossible de définir le propriété locked de la classe Range"

De plus si l'option Liaison de donnée est en mode manuel je ne rencontre pas ce problème.

Merci d'avance!

Bonjour tout le monde

c'aurait été plus facile avec le fichier en question mais :

je pense que c'est parce que ta feuille est vérouillée, la tu modifie la propriété des cellules mais ta macro plante car ta feuille est protégée.

tu devrait déja: selerctionne toute la feuille, clique droit, format de cellule, protection, décoche "vérouillé", fait le contraire pour ta plage de cellule (coche "vérouillée") ensuite tu protege ta feuille, mais dans ta macro, au lieu d'agir sur ta plage de cellule tu verouille et dévérouille ta feuille.

ou alors, tu continue comme ça mais tu doit dévérouiller ta feuille avant d'agir sur tes cellules.

Cordialement

Bonjour,

En dehors de ce maguetlolo te dit, je ne comprends pas ta ligne

For Each c In Range("J2") 

Pourquoi faire une boucle sur une cellule ?? J2 est une cellule ou une plage de cellule ???

Si J2 est la cellule J2 mets plutôt ceci :

If IsDate(Range("J2")) Then DT01 = Weekday(Range("J2"))

Amicalement

Merci,

en effet j'avais mal interprété le fonctionnement du vérouillage des cellules.

Merci

Rechercher des sujets similaires à "propriete locked classe range"