Bonsoir,
Hello @LouReeD,
Désolé mais je suis sur Mac donc tout ce qui est activeX ne marche pas sur Mac
Je privilégie quasi tout le temps les codes vba qui marchent sur Mac et PC …
Voilà donc une autre solution qui n'efface pas les couleurs (3ème feuille - MACRO ET MFC)
- une qui sélectionne seulement une ligne :
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'auteur Ryuautodidacte
Dim Col As String, Deb As Byte, DerL As Long
Col = "A:H": Deb = 1: DerL = Cells(Rows.Count, Mid(Col, 1, 1)).End(xlUp).Row
If Not Application.Intersect(Target, Range(Col).Rows(Deb & ":" & DerL)) Is Nothing Then
Range(Col).Rows(Deb & ":" & DerL).FormatConditions.Delete
With Range(Col).Rows(Target.Row)
.FormatConditions.Add Type:=2, Formula1:="=CELLULE(""ligne"")=LIGNE()"
With .FormatConditions(1)
.Interior.ColorIndex = 6
.StopIfTrue = False
End With
End With
End If
End Sub
- une qui sélectionne seulement une ligne ou plusieurs lignes contigues :
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'auteur Ryuautodidacte
Dim Col As String, Deb As Byte, DerL As Long
Col = "A:H": Deb = 1: DerL = Cells(Rows.Count, Mid(Col, 1, 1)).End(xlUp).Row
If Not Application.Intersect(Target, Range(Col).Rows(Deb & ":" & DerL)) Is Nothing Then
Range(Col).Rows(Deb & ":" & DerL).FormatConditions.Delete
With Range(Col).Rows(Target.Row).Resize(Selection.Rows.Count)
.FormatConditions.Add Type:=2, Formula1:="=LIGNES(" & Target.Address & ")"
With .FormatConditions(1)
.Interior.ColorIndex = 6
.StopIfTrue = False
End With
End With
End If
End Sub
Bien sur comme les colonnes, ligne de départ et ligne de fin sont paramétrables …
Le fichier :