Comment savoir par une formule quelle cellule donne le MAX ou MIN ?

  • Initiateur de la discussion Initiateur de la discussion lebarbo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

lebarbo

XLDnaute Occasionnel
Bonjour le forum, bonjour à tous,

Je fais souvent des formules sous Excel de MAX et MIN. Cette formule me renvoie le maximum ou le minimum d'une plage mais je ne sais pas comment faire pour avoir l'adresse de la cellule où il y a ce MAX ou MIN.

Dans un deuxième temps je souhaiterais adapter la réponse à cette question pour un tableau virtuel je m'explique :
Je fais un tableau en VBA

Function Recovry(Fonds As Range) As Variant
Dim TabResult As Variant
Dim L As Long

ReDim TabResult(1 To Fonds.Count - 1)
For L = 2 To Fonds.Count
TabResult(L - 1) = (Fonds(L).Value / Fonds(L - 1).Value)-1
Next L
Recovry = Application.Min(TabResult)

Cette fonction donne le minimum de la série qui calcule des rentabilités.

Et j'aimerai avoir l'adresse du Min pour refaire un calcul dont dépend cette variable.

Merci d'avance pour vos réponses.
 
Dernière édition:
Re : Comment savoir par une formule quelle cellule donne le MAX ou MIN ?

Salut Épaf,

Je pense qu'il y a fausse piste ; )

Je ne cherche pas à faire une fonction MAX mais à retourner l'adresse de la cellule qui donne le MAX de la plage.
 
Re : Comment savoir par une formule quelle cellule donne le MAX ou MIN ?

Si tu as la possibilité de faire un tri, c'est celle de la dernièr ligne.
Pour remettre tout d'aplomb, tu numérotes tes lignes dans une colonne vide avant le tri, tu tries, tu récupères la donnée, tu tri selon la colonne des No Lignes crée, tu supprimes la colonne.
Sinon, effectivement, tu as la boucle sur ta plage, avec une variable pour la donnée et une variable pour l'adress. Chaque fois que tu trouves une donnée plus grande, tu remplaces les anciennes valeurs.
Une difficulté ?
 
Re : Comment savoir par une formule quelle cellule donne le MAX ou MIN ?

Je crois qu'on ne c'est vraiment pas compris ; )

Je ne souhaite pas une manière détourné (filtre...) pour avoir l'adresse, je souhaite avec une formule un renvoie d'adresse. Est ce qu'il existe ce type de fonction ou dois-je la créée en VBA ?

Merci
 
Re : Comment savoir par une formule quelle cellule donne le MAX ou MIN ?

Bonjour lbarbo, épaf

en supposant que tu cherches la valeur max de la colonne A :

=ADRESSE(EQUIV(MAX(A:A);A:A;0);1;1;1)

à insérer dans une cellule d'une colonne autre que A, bien sûr
 
Re : Comment savoir par une formule quelle cellule donne le MAX ou MIN ?

Bonjour bhbh,

Ta formule est nikel, merci maintenant il me reste à l'adapter à mon code et là ça se complique. Voici ce que j'ai essayé sans résultat pour l'instant :

Function Recovry(Fonds As Range) As Variant
Dim TabResult As Variant
Dim L As Long

ReDim TabResult(1 To Fonds.Count - 1)
For L = 2 To Fonds.Count
TabResult(L - 1) = (Fonds(L).Value / Fonds(L - 1).Value) - 1
Next L
AdresseRecovry = Application.Address(Match(Min(TabResult),TabResult, 0), 1, 1, 1)
Recovry = Application.Min(TabResult)

End Function

Bien sur c'est AdresseRecovry = Application.Address(Match(Min(TabResult),TabResult, 0), 1, 1, 1) qui plante.

Je ne sais vraiment pas comment faire pour identifier ce MIN dans ce tableau virtuel : (
 
Dernière édition:
Re : Comment savoir par une formule quelle cellule donne le MAX ou MIN ?

Excuse, tout à l'heure j'étais un peu pressé
Code:
Dim TempVal, TempAdres
For each cell in Fonds
     if cell > TempVal then
          TempVal = Cell
          TempAdres = Cell.address
     endif
Next
A@
 
Re : Comment savoir par une formule quelle cellule donne le MAX ou MIN ?

Non plus Épaf ; )

Je vais repréciser tout ça, voilà j'ai une function dans VBA qui me calcul les rentabilités d'une série (Fonds(L).Value / Fonds(L - 1).Value) - 1.

Toutes ces rentabilités sont stockés dans un tableau virtuel : TabResult

Je souhaite savoir quel est le minimum de cette nouvelle série qui est dans TabResult : Application.Min(TabResult) mais également pourvoir localiser l'adresse virtuelle de ce chiffre dans le tableau TabResult et là ça coince ! ; )

Comment puis-je m'y prendre ?

D'ailleurs je devrais peut-être refaire un fil plus explicite au niveau du titre ?

Merci
 
Re : Comment savoir par une formule quelle cellule donne le MAX ou MIN ?

Bonsoir,

Bien sur c'est AdresseRecovry = Application.Address(Match(Min(TabResult),TabResult , 0), 1, 1, 1) qui plante.

La fonction Address ne s'applique qu'aux plages de cellules.

Code:
Dim AdresseRecovry As Long

Function Recovry(Fonds As Range) As Variant
    Dim TabResult As Variant
    Dim L As Long
    ReDim TabResult(1 To Fonds.Count - 1)
    For L = 2 To Fonds.Count
        TabResult(L - 1) = (Fonds(L).Value / Fonds(L - 1).Value) - 1
    Next L
    With Application.WorksheetFunction
        AdresseRecovry = .Match(.Min(TabResult), TabResult, 0)
        Recovry = .Min(TabResult)
    End With
End Function

Cordialement,

Tirex28/
 
Re : Comment savoir par une formule quelle cellule donne le MAX ou MIN ?

Bonjour à tous, bonjour tirex28,

Oui c'est pour ça que cela ne fonctionne pas mais y a t-il un autre moyen de "cibler" dans ce tableau virtuel une adresse.
Le tableau est égal à Fonds.Count-L (L=2) et à un moment nous trouvons la valeur minimum, mais à quel endroit ?

Si il n'y a pas de solution je crois que je serais malheureusement obliger de construire ce tableau en réel ; )

Merci d'avance
 
Re : Comment savoir par une formule quelle cellule donne le MAX ou MIN ?

Bonjour,

Code:
AdresseRecovry = .Match(.Min(TabResult), TabResult, 0)

Renvoi l'indice du plus petit élément dans le tableau, c'est bien ce que tu veux?

Pour avoir la correspondance dans la plage de cellule, en supposant que celle-ci est en colonne:

Code:
Dim AdresseRecovry As Variant
With Application.WorksheetFunction
    AdresseRecovry = .Match(.Min(TabResult), TabResult, 0)
    AdresseRecovry = .Address(Fonds.Cells(1,1).Offset(AdresseRecovry,0),1,1,1)
End With

Cordialement,

Tirex28/
 
Dernière édition:
Re : Comment savoir par une formule quelle cellule donne le MAX ou MIN ?

Arffff excuse moi tirex28 j'ai répondu trop vite tu m'avais donné la bonne réponse, il faut juste mettre match et non address comme ça ne fait pas référence à une cellule. Et du coup avec ce renvoie je peux identifier et continuer mon code.

Impec...merciiii beaucoup
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
582
Réponses
2
Affichages
1 K
Retour