J'aurais voulu savoir comment faire pour trouver la dernière avec max d'une colonne je m'explique j'ai une colonne de plusieurs valeurs ou il y a plusieurs fois les même je voudrais donc trouver le dernier max de cette colonne.
En VBA, à inclure dans un module (en supposant que tes valeurs soient stockées dans la colonne A et commencent à la ligne 1 :
VB:
Dim a, Lig, i as Integer
For i = 1 to Range("A1").End(xlDown).Row
If Range("A" & i)>= a then
a = Range("A" & i)
Lig = i
End if
Next i
MsgBox "La valeur max est " & a & "à la ligne " & Lig
Avec les valeurs en A1:A32, n° de ligne de la dernière valeur max:=AGREGAT(14;6;LIGNE(A1:A32)/(A1:A32=MAX(A1:A32));1)
Pour avoir la valeur correspondante : =INDEX(A1:A32;AGREGAT(14;6;LIGNE(A1:A32)/(A1:A32=MAX(A1:A32));1))
Mais dans ce dernier cas MAX(A1:A32) le fait tout aussi bien
cordialement
Effectivement, sans vba, tu peux trouver facilement, mais la question devient alors si tu cherches la dernière plus grande valeur (la plus grande valeur tout court du coup), ou la ligne de la dernière plus grande valeur.
bonjour
sinon fonction large combinée a find xlprevious
VB:
Sub LastMax()
col = 1
Set plage = Range(Cells(1, col), Cells(Rows.Count, col).End(xlUp))
Max = WorksheetFunction.Large(plage, 1)
Set cel = plage.Find(Max, LookIn:=xlValues, SearchDirection:=xlPrevious)
MsgBox cel.Address
End Sub
bonjour @xUpsilon
très mauvaise idée d'utiliser (xldown) :si il y a une cellule vide avant la fin ben c'est rapé !!
Bonjour à tous,
Merci pour vos réponses
J'ai juste un petit problème roblochon je pense que la fonction agregat n'est pas connu de par excel 2007 car des que je rentre la formule que vous m'avez donné j'ai une erreur de nom comme réponse.
La fonction matricielle suivante vous retourne le n° de ligne correspondant au dernier MAX de A1:A32: GRANDE.VALEUR(SI(A1:A32=MAX(A1:A32);LIGNE(A1:A32));1)
vous devrez la valider par CTRL+MAJ+ENTREE (ce qu'évitait Agregat)
Mais vous ne dites toujours pas ce que vous voulez en faire.
La fonction matricielle suivante vous retourne le n° de ligne correspondant au dernier MAX de A1:A32: GRANDE.VALEUR(SI(A1:A32=MAX(A1:A32);LIGNE(A1:A32));1)
vous devrez la valider par CTRL+MAJ+ENTREE (ce qu'évitait Agregat)
Mais vous ne dites toujours pas ce que vous voulez en faire.
Je veux utiliser cette ligne pour ensuite trouver la valeur d'une autre cellule de cette même ligne pour intégrer cette valeur à une formule qui me trace une droite tangente à une autre droite au point max de cette deuxième. C'est un peu compliqué mais votre solution pour mon problème fonctionne.