Bonjour tout le monde,

Ca va peut-être vous faire sourire, mais j'ai eu à résoudre un petit problème dans un rapport créé par ma collègue.
En fait celle-ci se trouvait confronté au problème de la division par 0 ce qui lui faisait planter son rapport.

Le problème a pu être résolu très simplement grace aux informations que j'ai trouvées ici

Il s'agit de la fonction suivante ( J'ai copié le code complet afin de mentionner le nom de l'auteur ):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
' Handle divide by zero gracefully
' simpler than trying to use nested IIF() functions
' Author: Clayton Groom
 
Public Function CalcRatio(ByVal Numerator As Object, ByVal Denominator As object, ByVal DivZeroDefault As Object) As Object
 
   If Denominator <> 0 Then
        Return Numerator/Denominator
   Else
        Return DivZeroDefault 
   End If
End Function
On appelle ensuite cette fonction par:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
=code.CalcRatio( Fields!PYGrossProfit.Value, Fields!PYSales.Value, 0)
si l'on veut afficher un 0
ou par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
=code.CalcRatio( Fields!PYGrossProfit.Value, Fields!PYSales.Value, Nothing)
si l'on veut laisser un champ vide.

Comme je le mentionnait plus haut, ce n'est pas de moi, mais je pensais que cela pourrait-être utile à d'autres personnes