Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Faire fonctionner une macro que sur des plages de cellules sélectionnées.

DAVID-44-

XLDnaute Occasionnel
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.
 

TooFatBoy

XLDnaute Barbatruc
Bonjour,

Une proposition à mettre au début de ta macro :
VB:
    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
 
Dernière édition:

TooFatBoy

XLDnaute Barbatruc
Une autre proposition ????
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.
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…