[VBA] Ligne à laquelle se trouve le max de plusieurs cellules [Résolu]

darkneo

XLDnaute Nouveau
Bonjour,

j'ai besoin de récupérer non pas le maximum de 4 cellules (F23:F26), mais le numéro de la ligne à laquelle ce maximum a été trouvé.

Merci
 
Dernière édition:

GIBI

XLDnaute Impliqué
Re : [VBA] Ligne à laquelle se trouve le max de plusieurs cellules

Bonjour,

si j'ai compris ton besoin

tu peux faire {=EQUIV(MAX(F23:F26);F23:F26;0)} à valider par ctrl+shift+enter

cela te donne le numéro de la ligne dans la matrice, si tu veux le numéro de la ligne excel tu ajoute 22
 

john

XLDnaute Impliqué
Re : [VBA] Ligne à laquelle se trouve le max de plusieurs cellules

Bonjour,

tu peux faire aussi en vba comme ceci.

Private Sub Worksheet_Change(ByVal Target As Range)
col = Target.Column
If col = 6 Then 'je controle si changement uniquement dans la colone 6 ==> F
Set myrange = Worksheets("Feuil1").Range("F:F")
Max = Application.WorksheetFunction.Max(myrange)
Range("F:F" & fin).Select
Selection.Find(What:=Max).Select
col_max = ActiveCell.Row
MsgBox "ligne : " & col_max
End If
End Sub

Bonne journée.

John
 

darkneo

XLDnaute Nouveau
Re : [VBA] Ligne à laquelle se trouve le max de plusieurs cellules

Il ne serait pas possible de faire plus simple ?

Quelque chose comme :

rowMax = Application.WorksheetFunction.Max(Range("F23:F26")).Row
(Erreur, qualificateur incorrect sur .Max)


Je suis débutant en VBA mais ayant déjà fait de la programmation objet je pense qu'il doit y avoir un moyen de récupérer la ligne d'une façon qui se rapprocherait de ça...
 
Dernière édition:

john

XLDnaute Impliqué
Re : [VBA] Ligne à laquelle se trouve le max de plusieurs cellules

Re,

Tu ne peux pas mettre le .row derrière la fonction Application.WorksheetFunction.Max(Range("F23:F26")), donc on est obligé de contourner le problème autrement !!

Mais si tu veux faire plus court, tu peux faire comme ceci
Private Sub Worksheet_Change(ByVal Target As Range)
Max = Application.WorksheetFunction.Max(Range("F23:F26"))
Range("F23:F26").Select
Selection.Find(What:=Max).Select
col_max = ActiveCell.Row
end sub

Bonne journée.

John
 
Dernière édition:

GIBI

XLDnaute Impliqué
Re : [VBA] Ligne à laquelle se trouve le max de plusieurs cellules

Rebonjour,

en vba tu peux utiliser ma formule mais en deux temps, mais est-ce plus simple?


Set Plage = Range("F23: F26 ")
Valmaxi = Application.WorksheetFunction.Max(Plage)
maxi = Application.WorksheetFunction.Match(Valmaxi, Plage, 0) + 22
 

Discussions similaires

Réponses
6
Affichages
359

Statistiques des forums

Discussions
312 198
Messages
2 086 151
Membres
103 133
dernier inscrit
mtq