Forum Bonne année
est ce que il y a une possibilité de mettre un code( bouton ) pour déverrouillé les cellules blanches seulement dans une feuille coloriée en bleu clair?
toutes les cellules de la feuille sont Verrouillées
GRAZIE
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim CM As Long
Dim c As Range
'deprotege et verrou sur toute la feuille
ActiveSheet.Unprotect
ActiveSheet.Cells.Locked = True
'target count = CM ( c'est à dire: soit 1, soit > 1 si fusion)
For Each c In Target
CM = IIf(c.MergeCells, CM + 1, 1)
Next c
If Target.Count = CM Then
If Target.Interior.ColorIndex = xlNone _
Or Target.Interior.ColorIndex = 2 Then
Target.Locked = False
End If
End If
ActiveSheet.Protect AllowFormattingCells:=True
End Sub
PS . la protection repose sur la couleur il est preferable de supprimer ce petit bout ( AllowFormattingCells:=True)
Bonne soirée
Isab
Bonjour à tous
Isab:
J'ai testé ton code. Ici les cellules restent sur Locked=True
(et sur une une feuille vierge, il empêche toute coloration de cellule)
Néanmoins j'ai bien aimé ton petit CM
EDITION: Si on ne protège pas la feuille, alors là les cellules sont bien déverrouillées.
Ilino:
Il n'y a pas de fichier dans le poste 11.
Et je te le répète (comme beaucoup d'autres sur le forum), la fusion de cellules est à bannir autant que possible car source d'ennui surtout en VBA.
Merci pour le CM
sinon j'ai modifié le code .. il est possible de mettre de la couleur sur les cellules..
mais dans ce cas la macro n'a pas lieu d'être
PS . la protection repose sur la couleur il est preferable de supprimer ce petit bout (AllowFormattingCells:=True)
Isab
Quelle est ta version d'Excel?
car avec Excel 2003 (version avec laquelle j'ai fait les tests), j'obtiens ceci.
(si je laisse le code de déprotection/protection actif)
PS: test fait avec ton code sans modif aucune.
EDITION: Zut, je viens de voir que tu vais édité ton code, quel idiot je fais !
Avec ta dernière modif
Plus d'onglet Protection (donc je ne peux vérifier visuellement si la cellule est verrouillée ou déverrouillée)
et on ne peut plus fusionner les cellules (ce qui pour moi n'est pas un mal mais pour Ilino c'est point pareil )
Et pourquoi donc cette obligation ? La fusion est là pour l’esthétisme mais avec les ennuis Centrer sur plusieurs colonnes équivaut à la fusion sans les ennuis mais avec le même résultat esthétique
Tu es bien sur que cela fonctionne dans tous les cas de figure ?
Ce n'est pas le cas chez moi
par exemple
je fusionne deux cellules plus je mets en blanc
la case Verrouillée reste cochée
J'ai beau essayé (même en écoutant du jazz-fusion à donf pour conjurer le mauvais sort )
Il m'est impossible de faire les choses suivantes:
- fusionner des cellules (avec AllowFormattingCells:=True)
- de faire quoi que ce soit (si on met seulement ActiveSheet.Protect)
Le principal c'est au final cela fonctionne pour Iilino
D'ailleurs, Ilino, c'est le cas ? C'est OK pour toi ?
PS: Comme je n'ai pas de cours de danse de prévu, je vais me rabattre sur la vaisselle pour changer de VBA.
(Pas sur que la dépense énergétique soit la même, mais par souci de sécurité je ne peux pas faire la vaisselle en dansant )
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim CM As Long
Dim c As Range
'deprotege et verrou sur toute la feuille
ActiveSheet.Unprotect
ActiveSheet.Cells.Locked = True
'target count = CM ( c'est à dire: soit 1, soit > 1 si fusion)
For Each c In Target
CM = IIf(c.MergeCells, CM + 1, 1)
Next c
If Target.Count = CM Then
If Target.Interior.ColorIndex = xlNone _
Or Target.Interior.ColorIndex = 2 Then
Target.Locked = False
End If
End If
ActiveSheet.Protect AllowFormattingCells:=True
End Sub
PS . la protection repose sur la couleur il est preferable de supprimer ce petit bout ( AllowFormattingCells:=True)
Bonne soirée
Isab
Bonsoir tous le monde
c’était un formidable cours que j'ai pris today (danse, vaisselle.. etc ) et en fin le code ( autrement vos codes VBA)
GRAZIE JM Grazie Isab
A+