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
mais dans ce cas la macro n'a pas lieu d'être
Re
Ilino
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
Donc le changement c'est maintenant
Re
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 )Ceci fonctionne dans le code que j'ai proposé.. et c'est à ça entre autre que je répondais..
Bonsoir tous le mondeBonjour
peut-être comme ceci ( au dos de la feuille):
Code: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