![]() |
|
Forum
|
|
|
#1 (permalink) |
|
Guest
Messages: n/a
|
Bonsoir,
Je ne peux plus me passer de ce forum! Savez_vous comment verrouiller ou d¨¦verouiller automatiquement des cellules en fonction de la couleur de fond. Dans le fichier joint je voudrai que seules les cellules fond jaune restent d¨¦verrouill¨¦es. Merci A+ |
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
Guest
Messages: n/a
|
Bonjour Surfing Joe, bonjour Forum,
Est-ce que ta question veut dire que tu veux que ce soit dynamique quand tu changes la couleur de la cellule ou bien tu veux juste le faire une fois. Auquel cas, je ne vois pas l'intérêt de faire une macro, il suffit de le faire à la main. A+ José |
|
|
#3 (permalink) |
|
Guest
Messages: n/a
|
Re Surfing Joe,
Voici un code qui permet de faire ce que tu demandes. Sub VerrouillageCouleur() ActiveSheet.Unprotect For Each c In Range("A1:R26") If c.Interior.ColorIndex = 36 Then c. Locked = False Else c. Locked = True End If Next c ActiveSheet.Protect End Sub Je regarde pour l'adapter en dynamique mais c'est pas gagné car le changement de couleur ne déclenche pas un évènement Worksheet_Change. A+ José |
|
|
#4 (permalink) |
|
Guest
Messages: n/a
|
Re re,
D'abord une simplification de mon code précédent : Sub VerrouillageCouleur() ActiveSheet.Unprotect For Each c In Range("A1:R26") c.Locked = Not (c.Interior.ColorIndex = 36) Next c ActiveSheet.Protect End Sub C'est une astuce que j'avais vue sur un poste de Ti il n'y a pas très longtemps. Merci à lui. Pour ce qui est de l'utilisation en dynamique, il n'y a effectivement pas d'évènement déclenché par le fait de changer une couleur de cellule, ce qui est fort dommage mon cher Billou (Lol !). Il faudrait donc déclencher cette macro sur des évènements comme : Worksheet_Change Worksheet_SelectionChange Worksheet_Calculate La seule contrainte, c'est qu'on est obligé de parcourir toute la plage à chaque fois car on ne sait pas quelle(s) cellule(s) a ou ont changé de couleur. Dans ton exemple ce n'est pas gênant mais si tu as des grandes plages à parcourir, ça peut devenir embêtant en termes de temps de réponse. Si tu veux quand même l'utiliser tu places le code ci-dessus dans un module standard. Puis tu appelles VerrouillageCouleur dans un (ou plusieurs si tu veux) des Sub Worksheet_xxxxxx que je citais. Voilà. Maintenant peut-être que quelqu'un d'autre a une solution plus élégante. Bon dimanche. José |
|
|
#5 (permalink) |
|
Guest
Messages: n/a
|
Bonjour,
Je viens me greffer sur le post de Surfing Joe pour poser la question suivante qui est dans le même style ; Est-il possible de vérouiller certaines cellules, en fonction de la couleur d' un autre cellule ? Par exemple, peut-on verouiller A1 B1 C1 D1 E1, si la couleur de la cellule G1 est rouge par exemple. Merci. |
|
|
#6 (permalink) |
|
Guest
Messages: n/a
|
Bonjour Benoit,
Bien sûr, c'est le même principe. Mais le problème reste le même... Dynamique ou pas ? Sub VerrouillageCouleur() If Range("G1").Interior.ColorIndex = 3 Then Range("A1:E1").Locked = True End Sub Bon dimanche à toi aussi. José |
|
|
#8 (permalink) |
|
Guest
Messages: n/a
|
Bonjour! merci ¨¤ tous, je vais essayer vos pr¨¦cieux conseils, et vous teindrai au courrant.
L'int¨¦r¨ºt est que lorsqu'on travaille ¨¤ plusieurs sur une feuille comportant beaucoup de lignes et de colonnes, on peut construire en d¨¦terminant imm¨¦diatement par le fond color¨¦, quelles cellules peuvent ¨ºtre modifiables ou pas, et ainsi chacun se rep¨¨re rapidement ce qui ¨¦vite aussi des erreurs de saisie. A+ S.J. |
|
|
#9 (permalink) |
|
Guest
Messages: n/a
|
Bonjour Jmps,
Ta marco fonctionne bien et r¨¦pond ¨¤ mon attente, c'est un peu long mais bien pratique pour moi, de plus c'est une excellente base pour ¨¦voluer. Je vais travailler avec... Merci 65536x256 fois. |
| ANNONCES | |
| Liens sociaux |
| Outils de la discussion | |
|
|