1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
Option Explicit
Private Sub MaxInArray()
Dim tabTemp() As Variant, tabMax() As Variant
Dim dblMax1#, dblMax2#, dblMax3#
Dim i%, j%
Dim strTemp$
tabTemp = Application.Evaluate("{""ID1"",156,147,132;""ID2"",14,258,369;""ID3"",36,200,301}")
dblMax1 = Application.Max(Application.Index(tabTemp, , 2))
dblMax2 = Application.Max(Application.Index(tabTemp, , 3))
dblMax3 = Application.Max(Application.Index(tabTemp, , 4))
ReDim tabMax(2, 3)
tabMax(0, 0) = Application.Index(tabTemp, Application.Match(dblMax1, Application.Index(tabTemp, , 2), 0), 1)
'tabMax(0, 1) = 0
tabMax(0, 2) = dblMax1
tabMax(1, 0) = Application.Index(tabTemp, Application.Match(dblMax2, Application.Index(tabTemp, , 3), 0), 1)
'tabMax(1, 1) = 0
tabMax(1, 2) = dblMax2
tabMax(2, 0) = Application.Index(tabTemp, Application.Match(dblMax3, Application.Index(tabTemp, , 4), 0), 1)
'tabMax(2, 1) = 0
tabMax(2, 2) = dblMax3
For i = LBound(tabMax, 1) To UBound(tabMax, 1)
strTemp = ""
For j = LBound(tabMax, 2) To UBound(tabMax, 2)
strTemp = strTemp & " " & tabMax(i, j)
Next j
Debug.Print (strTemp)
Next i
End Sub |
Partager