Une tâche relativement courante dans la pratique consiste à trouver des valeurs extrêmes à partir d’une liste. Ce n’est peut-être pas si simple. Il est préférable d’utiliser une fonction définie par l’utilisateur qui vous indique les adresses de cellule des valeurs extrêmes. La fonction de détermination de la valeur maximale dans une zone marquée est la suivante:
Function AdresseValeurMaximale(r As Range) Dim rng As Range Dim ValeurMax As Double Application.Volatile ValeurMax = WorksheetFunction.Max(r) AdresseValeurMaximale = "" For Each rng In r If rng.Value = ValeurMax Then AdresseValeurMaximale = AdresseValeurMaximale & _ rng.AddressLocal & "; " End If Next End Function
Commentaires:
■ Vous pouvez déterminer la plus grande valeur dans le marquage à l’aide de la fonction Max. Dans le cas où il y a plusieurs valeurs maximales identiques dans la zone marquée, enregistrez toutes les adresses dans la variable MaxValueAddress et ajoutez d’autres adresses avec l’opérateur de chaînage et simplement à l’arrière sur.
■ Le cas contraire, comment vous pouvez déterminer les adresses de cellule des valeurs les plus faibles, est illustré dans la macro suivante:
Function AdresseValeurMinimale (r As Range) Dim rng As Range Dim ValeurMin As Double ValeurMin = WorksheetFunction.min(r) AdresseValeurMinimale = "" For Each rng In r if rng.Value = ValeurMin Then AdresseValeurMinimale = AdresseValeurMinimale & _ rng.AddressLocal & "; " End If Next End Function
Vous pouvez déterminer la valeur la plus basse dans le marquage à l’aide de la fonction Min. Si la valeur minimale apparaît plusieurs fois dans la zone marquée, entrez toutes les adresses de cellule à l’aide de la requête IF en conjonction avec l’opérateur de chaînage &.