Bonjour , je dois écrire une fonction qui me renvoie le plus grand élément du tableau parmi ceux qui sont strictement inférieurs à un nombre n passé en paramètres . La fonction renvoie "erreur" si il n'y a pas de plus grand élément.

Voici mon idée d'algorithme : On déclare une variable X qui par définition est égale au 1er élément du tableau .

Si la case du tableau contient une valeur inférieure à n Ensuite

Si la case du tableau contient une variable plus petite que X , alors on passe à la case suivante ,
SINON
X est égal à la valeur de la case .
Fin du 1er if

SINON
on passe à la case suivante
FIN

J'ai tenté d'écrire un code qui dans un 1er temps ne s'occupe pas du erreur , juste du n et de la recherche du 1er élément , mais il fonctionne pas bien , le voici :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Function plusGrand(ByVal n As Long) As Single
Dim plage As Range
Dim i As Integer, X As Integer
Set plage = Range(Cells(1, 1), Cells(20, 1))
X = plage.Cells(1, 1).Value
    For i = 2 To 20
       If plage.Cells(i, 1).Value < n Then
            If plage.Cells(i, 1).Value < X  Then
                i = i + 1
            Else
                X = plage.Cells(i, 1).Value
                i = i + 1
            End If
            i = i + 1
        End If
    Next i
    plusGrand = X
End Function
J'ai l'impression que c'est parce que je parcours mal le tableau , qu'en pensez vous?

Merci .