Fonctions Min / Max d’une série de valeurs

Deux petites fonctions qui permettent d’extraire la valeur minimale ou maximale d’une série de valeurs dans une requête SQL ou dans un code VBA.

Les fonctions

Public Function getMin(ParamArray pa() As Variant) As Variant
   Dim v As Variant
   For Each v In pa
      If getMin > v Then
         getMin = v
      ElseIf IsEmpty(getMin) And Not IsNull(v) Then
         getMin = v
      End If
   Next v
End Function

Public Function getMax(ParamArray pa() As Variant) As Variant
   Dim v As Variant
   For Each v In pa
      If getMax < v Then
         getMax = v
      ElseIf IsEmpty(getMax) And Not IsNull(v) Then
         getMax = v
      End If
   Next v
End Function

 
Paramètre
Elles acceptent un nombre quelconque de valeurs en paramètre grâce à l’utilisation du type ParamArray.

Particularités

  • Ces fonctions gèrent les NULL c’est à dire qu’elles ne renvoient un NULL que si toutes les valeurs passées en paramètre sont nulles.
  • Le type des paramètres doit être uniforme et peut être numérique, date ou string. Une adaptation du code sera nécessaire pour une bonne gestion des accents et autres caractères particuliers.

Exemples

'Pas d'erreur si aucun paramètre...
? getMax(), getMin()

'Renvoient 0 :  
? getMax(NULL, 0, NULL), getMin(NULL, 0, NULL)

'Renvoient 5 et -1
? getMax(NULL, 0, 5, -1, NULL), getMin(NULL, 0, 5, -1, NULL)

@+

Philippe

Laisser un commentaire