Il y a 1,5 choses qui ne vont pas:
1. Si tu stockes le premier element de la plage dans une variable, toute valeur de la plage qui lui est supérieure se stockera dans maximum. Par exemple, si le dernier element de ta plage est supérieur au premier mais n'est pas le premier absolu, maximum resortira le dernier. Ca doit pas etre l'effet recherché
1,5. Tout dépend de ce que tu veux classer. Si c'est des string, alors ton code est bon, tu auras la lettre la plus en bas d'une liste classée un peu comme les noms de fichiers de windows (1, 10, 11, 12, .., 2, 21, ...). Par contre si tu veux classer des nombres, il faut les convertir en integer ou double.
Le bon code serait donc plutot
Code :
- Function maximum(plage)
- Dim i As Long
- 'Dim Min As Variant
- maximum = plage(LBound(plage))
- For i = LBound(plage) To UBound(plage)
- If IsNumeric(plage(i)) And IsNumeric(maximum) Then
- If Val(plage(i)) >= Val(maximum) Then maximum = plage(i)
- Else
- If plage(i) >= maximum Then maximum = plage(i)
- End If
- Next i
- End Function
|
Voila !