Function LigneMax(r As Range, critere As String) As Long
Dim v As Variant, maxi As Double
critere = LCase(critere) 'minuscules, les caractères génériques sont autorisés
Set r = Intersect(r, r.Parent.UsedRange)
If r Is Nothing Then Exit Function
For Each r In r.Rows
If LCase(r.Cells(1)) Like critere Then
v = r.Cells(1, 2)
If IsNumeric(CStr(v)) Then If CDbl(v) > maxi Then maxi = CDbl(v): LigneMax = r.Row
End If
Next
End Function