antoine_ferard
Messages postés222Date d'inscriptionmercredi 5 avril 2006StatutMembreDernière intervention18 février 2011
-
7 avril 2008 à 12:45
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
7 avril 2008 à 13:02
bonjour,
en vba excel, j'ai 4 variables de type integer. J'aimerais afficher le nom de la variable ayant la valeur la plus élevée.
ex :
dim nb1, nb2, nb3, nb4 as integer
nb1 = 5
nb2 = 3
nb3 = 12
nb4 = 1
msgbox [le nom de la variable max, soit "nb3"]
Existerait-il une fonction du style MAX(liste de nb) qui rendrait la valeur max d'une liste de données ?
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202175 7 avril 2008 à 13:02
tu peux faire ce genre de choses :
Sub test()
Dim nb1 As Integer
Dim nb2 As Integer
Dim nb3 As Integer
Dim nb4 As Integer
Dim nResult As Long
Dim nIndex As Long
nb1 = 5
nb2 = 3
nb3 = 12
nb4 = 1
nResult = Max(nIndex, nb1, nb2, nb3, nb4)
MsgBox "La valeur max est : " & nResult & " (nb" & (nIndex + 1) & ")"
End Sub
Private Function Max(ByRef vnIndex As Long, ParamArray Values() As Variant) As Long
Dim i As Long
If UBound(Values) = -1 Then
vnIndex = -1
Else
vnIndex = 0
Max = Values(0)
For i = 1 To UBound(Values)
If Max < Values(i) Then
vnIndex = i
Max = Values(i)
End If
Next i
End If
End Function