VBA : fonction "mise en forme conditionnelle" personnalisable

Résolu
Arkana0 Messages postés 6365 Date d'inscription   Statut Modérateur Dernière intervention   -  
Arkana0 Messages postés 6365 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Dans le cadre d'une macro sur Excel, j'utilise une fonction pour appliquer une mise en forme conditionnelle sur différentes cellules que je crée.

Je rencontre juste un problème : je souhaite que la comparaison puisse varier selon les cas. Je dois donc transmettre en argument de ma fonction "xlGreater" ou "xlEqual" mais je ne sais pas du tout quel type de variable y attribuer...

Je peux contourner le problème en transmettant une variable integer et utiliser des conditions, mais c'est tout de suite moins élégant...

Pour info voici le code que j'utilise :
Private Sub MiseEnFormeConditionnelle(Ligne As Integer, Colonne As Integer, Condition As String)

'Ligne et colonne permettent évidemment de localiser la cellule sur laquelle appliquer la mise en forme conditionnelle
'Condition représente en fait la valeur à laquelle comparer le résultat de la cellule. Le type de comparaison est défini ci-après

With Cells(Ligne, Colonne)
.FormatConditions.Delete 'Supprime les éventuelles mises en formes conditionnelles déjà créées (cas de plusieurs relance de la mise en forme du diag)
.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _
Formula1:=Condition
.FormatConditions(.FormatConditions.Count).SetFirstPriority
With .FormatConditions(1).Font
.Color = -16383844
.TintAndShade = 0
End With
With .FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 13551615
.TintAndShade = 0
End With
.FormatConditions(1).StopIfTrue = False
End With

End Sub

1 réponse

pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Bonjour,

xlGreater et xlEqual sont 2 constantes XlFormatConditionOperator. Il s'agit d'une énumération, à déclarer comme Long alors pour les remplacer.
https://docs.microsoft.com/en-us/office/vba/api/Excel.XlFormatConditionOperator
0
Arkana0 Messages postés 6365 Date d'inscription   Statut Modérateur Dernière intervention   182
 
Donc dans mon cas, je ferais mieux de partir sur une variable permettant d'alterner entre ces deux constantes selon le besoin.
Merci pour la précision
0