Bonjour à tous,
J'ai un code qui fonctionne sur toute une feuille et je souhaiterais que ce code ne fonctionne que sur des plages de cellules sélectionnées.
Voilà les plages des cellules :
("B7:K88")
("B95:K134")
("B147:K228")
("B235:K274")
("B287:K368")
("B375:K414")
("B427:K508")
("B515:K554")
("B567:K648")
et le code :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim zone As Range
Set zone = ActiveCell.CurrentRegion
'Cells.FormatConditions.Delete
Dim i As Integer
For i = 1 To Cells.FormatConditions.Count
If Cells.FormatConditions(i).Formula1 Like "*ligneActiveMFC*" Then
Cells.FormatConditions(i).Delete
End If
Next
With zone.FormatConditions.Add(xlExpression, Null, "=(""ligneActiveMFC""<>0)*LIGNE(" & zone.Cells(1).Address(False, False) & ")=" & ActiveCell.Row)
.Font.ColorIndex = 2
.Interior.ColorIndex = 3
End With
End Sub
Merci beaucoup pour votre aide.
Bonne soirée.
David.
Set ZoneRef = Range("B7:K88,B95:K134,B147:K228,B235:K274,B287:K368,B375:K414,B427:K508,B515:K554,B567:K648")
If Intersect(ZoneRef, Target) Is Nothing Then Exit Sub
Non, c'est juste que l'exécution de la macro dépend du fait que l'on ait sélectionné ou non au moins une des cellules de la zone que tu as indiquée au départ, et que la macro en elle-même n'a pas changé. Donc je ne suis pas sûr que ça corresponde exactement à ce que tu demandais.
Mais si ça correspond à ce que tu voulais, alors tant mieux.