XL 2019 Mise en surbrillance de cellules VBA.

Paulle

XLDnaute Occasionnel
Bonsoir,
J'ai récupéré le code dans une discussion du forum, mais je n'ai pas réussi à l'adapter.
Je souhaite que ce soit les cellules de la colonne "A" qui soient en surbrillance plutôt que celles de la colonne "B".

Si possible, que la plage s'ajuste en fonction des cellules ayant un contenu.
Const plage = "b3:u22"
 

Pièces jointes

  • Classeur6a.xlsm
    26.8 KB · Affichages: 3

job75

XLDnaute Barbatruc
Bonsoir Paulle,

Ceci me paraît suffire :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Cells.FormatConditions.Delete 'RAZ
On Error Resume Next
   With Union(Intersect(UsedRange.Rows(1), ActiveCell.EntireColumn), Intersect(UsedRange.Columns(1), ActiveCell.EntireRow))
      .FormatConditions.Add Type:=xlExpression, Formula1:=1
      .FormatConditions(1).Interior.Color = RGB(255, 150, 255)
   End With
End Sub
A+
 

Pièces jointes

  • Classeur6a.xlsm
    20.6 KB · Affichages: 10

job75

XLDnaute Barbatruc
Bonjour Paulle, le forum,

Une autre solution :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Cells.FormatConditions.Delete 'RAZ
If Intersect(ActiveCell, UsedRange, UsedRange.Offset(3)) Is Nothing Then Exit Sub '3 premières lignes du UsedRange exclues
    With Union(Intersect(UsedRange.Rows(1), ActiveCell.EntireColumn), Intersect(UsedRange.Columns(1), ActiveCell.EntireRow))
        .FormatConditions.Add Type:=xlExpression, Formula1:=1
        .FormatConditions(1).Interior.Color = RGB(255, 150, 255)
    End With
End Sub
La MFC n'est pas créée si la cellule active est dans les 3 premières lignes du UsedRange.

A+
 

Pièces jointes

  • Classeur6a(1).xlsm
    20.8 KB · Affichages: 4

Paulle

XLDnaute Occasionnel
Merci job75.
Je n'avais pas pensé à cette possibilité.
Mais du coup il m'est venu l'idée suivante :
La MFC n'est pas créée si la cellule active est dans les 3 premières lignes du UsedRange.
La MFC n'est pas créée si la cellule active est dans les 3 premières colonnes du UsedRange.
J'espère que je n'abuse pas.
 

job75

XLDnaute Barbatruc
Mais du coup il m'est venu l'idée suivante :
La MFC n'est pas créée si la cellule active est dans les 3 premières lignes du UsedRange.
La MFC n'est pas créée si la cellule active est dans les 3 premières colonnes du UsedRange.
Vous pouviez trouver ceci facilement :
VB:
If Intersect(ActiveCell, UsedRange, UsedRange.Offset(3, 3)) Is Nothing Then Exit Sub '3 premières lignes et colonnes du UsedRange exclues
A+
 

Pièces jointes

  • Classeur6a(2).xlsm
    21 KB · Affichages: 9

Discussions similaires

Réponses
3
Affichages
335

Statistiques des forums

Discussions
311 720
Messages
2 081 910
Membres
101 837
dernier inscrit
Ugo