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