Fonction max "relatif"

  • Initiateur de la discussion Gerome1980
  • Date de début
G

Gerome1980

Guest
Bonjour,

je voudrais créer une fonction VBA 'maxrel' dont la formule équivalente sous excel, pour la plage I73:I74 par exemple, serait:
=SI(ABS(MAX(I73:I74))<ABS(MIN(I73:I74));(MIN(I73:I74));(MAX(I73:I74)))
mais je n'y connais pas grand chose en prog.
Cela permet d'obtenir le max absolu tout en conservant le signe.

Merci beaucoup,

Jerome
 

Charly2

Nous a quittés en 2006
Repose en paix
Re:Fonction max \"relatif\"

Bonjour Gerome1980 et PierreJean, bonjour à toutes et à tous :)

PierreJean, ta fonction n'est pas complète, tu as peut-être utilisé les symboles ‹› . Si c'est le cas, ça ne passe pas dans les posts et il faut les remplacer par Alt+0139 pour ‹, et Alt+0155 pour › (truc d'Ândré).

Gerome, tu peux essayer de copier le code suivant dans un module (Alt+F11 / Insertion / Module) :

Function MaxRel(Cell As Range)
'
Dim ValMin, ValMax
'
  With Application
    .Volatile
    With .WorksheetFunction
      ValMax = .Max(Cell)
      ValMin = .Min(Cell)
    End With
  End With
  MaxRel = IIf(Abs(ValMax) < Abs(ValMin), ValMin, ValMax)
End Function

Je pense que tu n'auras pas trop de difficulté à comprendre cette fonction car c'est quasiment écrit comme ta formule. Tiens-nous au courant.

EDITION : Comme ta formule, la fonction personnalisée MaxRel retourne le nombre positif en cas de nombres opposés mais égaux en valeur absolue.

A+ ;)

Message édité par: Charly2, à: 15/03/2006 18:11
 

Discussions similaires

Statistiques des forums

Discussions
312 514
Messages
2 089 226
Membres
104 069
dernier inscrit
kit.survie