Dans ma feuille je veux savoir si une valeur est supérieure à une autre de référence.
Si c'est le cas, dans une 3ème cellule apparaît "OUI".
Si ce n'est pas le cas, apparaîtra alors "NON".
J'ai rédigé une petite fonction qui résoud le problème. Curieusement elle ne fonctionne que si la valeur de référence est un entier. Si elle est décimale, ça plante et je me demande bien pourquoi.
VB:
Function Kontrol(num As Variant, opérateur As String, x As Variant) As Variant
Kontrol = IIf(Evaluate(num & opérateur & x), "OUI", "NON")
'Kontrol = IIf(Evaluate(CDbl(num) & opérateur & CDbl(x)), "OUI", "NON") 'marche pas
End Function
La fonction "Evaluate" n'accepte que des chaînes. Les décimales saisies en autre chose qu'en Anglo-Saxon comportent une ",", alors que chez les Anglo-Saxons c'est un ".". VBA raisonne en Anglo-Saxon, donc, pour les numéros transformés en chaînes, il faudra au paravant substituer la "," par un ".".
VB:
Function Kontrol(num As Variant, opérateur As String, x As Variant) As Variant
Dim n As String, o As String
n = Replace(num, ",", "."): o = Replace(x, ",", ".")
Kontrol = IIf(Evaluate(n & opérateur & o), "OUI", "NON")
End Function