Comment sortir de boucle for quand condition atteinte [Résolu]

- - Dernière réponse :  John - 30 oct. 2019 à 13:29
Bonjour,

Comment je fais pour sortir d'une boucle for, sans utiliser le (Goto). C'est mon examen de vba bientôt et je sais pas comment.

Voici un exercice ou je dois créer une fonction qui demontre si les valeurs du tableau en 1D sont deccroissant. Help

Public Function EstEnOrdreDecroissant(ByRef tableau() As Double) As Boolean

Dim i As Integer ' compteur de boucle
Dim donnee1 As Integer ' variable pour l'associer à la premiere valeur de la boucle
Dim stockVariable As Integer ' compteur pour stocker la dernière valeur du tableau

EstEnOrdreDecroissant = False
stockVariable = 0
For i = LBound(tableau) To UBound(tableau)
donnee1 = tableau(i)
If tableau(i) <= stockVariable Then
EstEnOrdreDecroissant = True
Else
EstEnOrdreDecroissant = False


stockVariable = tableau(i)

Next i


End Function
Afficher la suite 

2 réponses

Messages postés
549
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
6 novembre 2019
73
0
Merci
Bonjour,
Je pense qu'un simple EXIT FOR devrait faire l'affaire
Mais tu mets où ton exit, je l’ai essayé et ça fait en sorte que ça fasse un seul tour de boucle. Je me mets peut être à la mauvaise place.

Merci
Commenter la réponse de M-12
Messages postés
23073
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
14 novembre 2019
5755
0
Merci
Bonjour,

j'aurais fait ainsi :
Public Function EstEnOrdreDecroissant(tableau() As Double) As Boolean
Dim i As Long ' compteur de boucle
EstEnOrdreDecroissant = True
For i = LBound(tableau) + 1 To UBound(tableau)
If tableau(i) < tableau(i - 1) Then
EstEnOrdreDecroissant = False
Exit For
End If
Next i
End Function


Pourquoi ByRef puisque tu tu ne désires pas modifier le tableau passé en paramètre ?
J'ai remplacé <= par < qui me parait plus logique.

Tu as aussi les structures
Do While test
Loop
'ou
Do
Loop Until test

mais si tu as déjà du mal avec For c'est peut-être un peu tard pour t'y pencher.
eric
merci beaucoup! puis c'est certain qu'il doit y avoir d'autres manières plus simples, mais on me les a pas encore apprises.
Commenter la réponse de eriiic