Bonjour,
Exemple : pour calculer un arrondi alterne :
Public Function ArrondiAlterne(ByVal Nombre, Optional ByVal Decimales = 0)
Static flgDown As Boolean
' Fonction Arrondi alterné : au plus près, 0.5 alterné vers le haut et vers le bas
If Nombre * 10 ^ Decimales - Int(Nombre * 10 ^ Decimales) = 1 / 2 Then
ArrondiAlterne = IIf(flgDown Xor Sgn(Nombre) = -1, Sgn(Nombre), 0)
flgDown = Not flgDown
End If
ArrondiAlterne = (Fix(Nombre * 10 ^ Decimales + Sgn(Nombre) * 1 / 2) - ArrondiAlterne) _
/ 10 ^ Decimales
End Function
Static n'est jamais obligatoire, on peut toujours stocker la variable ailleurs (dans une cellule, un nom, ...) pour éviter de l''utiliser