J'ai besoin d'aide

Résolu
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 28 juin 2005 à 18:11
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 - 29 juin 2005 à 20:25
Je veux faire un programme utilisant deux boucles et je ne me suis pas encore bien adapté à cet outil quand je l'execute : Reference variable de controle next incorrecte. Et le i de Next i est surligné, je vous donne l'integralité de mon code

Private Sub Command1_Click()
Dim a, b, c, d As Integer
a = Text1.Text
b = Text2.Text
c = Text3.Text


If c = 0 Then
Label2.Caption = 0
Label3.Caption = 0


ElseIf a = 0 Then
Label2.Caption = 1
Label3.Caption = c


ElseIf b = 0 Then
Label2.Caption = c
Label3.Caption = 1


Else: For i = -100 To 100
For n = -100 To 100

If a * i + b * n = c Then
Label2.Caption = i
Label3.Caption = n
Exit For
Exit For
End If

Next i
Next n


End Sub

D'avance meci

7 réponses

mrdep1978 Messages postés 402 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 7 juin 2009 7
28 juin 2005 à 18:23
Salut,

Inverse ton Next i et ton Next n

For i = -100 To 100
For n = -100 To 100
If a * i + b * n = c Then
Label2.Caption = i
Label3.Caption = n
Exit For
Exit For
End If
Next n
Next i
3
mrdep1978 Messages postés 402 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 7 juin 2009 7
28 juin 2005 à 18:54
J'ai repris ton code et après qqes pttes modif ça marche.
J'ai essayé aussi en utilisant des boucles While (parce que le double Exit For, je ne suis pas fan)
Pour DARKSIDIOUS : Il sort de sa boucle quand la condition est validée, donc pour moi le DoEvents ne change rien

Private Sub Command1_Click()
Dim a As Integer
Dim b As Integer
Dim c As Integer


Dim i As Integer
Dim n As Integer
Dim lb_Trouve As Boolean


a = Text1.Text
b = Text2.Text
c = Text3.Text


If c = 0 Then
Label2.Caption = 0
Label3.Caption = 0
ElseIf a = 0 Then
Label2.Caption = 1
Label3.Caption = c
ElseIf b = 0 Then
Label2.Caption = c
Label3.Caption = 1
Else
' i = -100
' While i <= 100 And Not lb_Trouve
' n = -100
' While n <= 100 And Not lb_Trouve
' If a * i + b * n = c Then
' Label2.Caption = i
' Label3.Caption = n
' lb_Trouve = True
' End If
' n = n + 1
' Wend
' i = i + 1
' Wend
For i = -100 To 100
For n = -100 To 100
If a * i + b * n = c Then
Label2.Caption = i
Label3.Caption = n
Exit For
Exit For
End If
Next n
Next i
End If
End Sub
3
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
28 juin 2005 à 18:31
Sa fonctionne le message d'erreur ne s'affiche plus mais quand je click sur la commande rien ne se passe, les label 2 et 3 ne sont pas modifiés
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
28 juin 2005 à 18:40
Je pense que le probleme vient de :
Label2.Caption = i
Label3.Caption = n
Mais je ne vois pas comment le résoudre
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
28 juin 2005 à 18:49
Label2.Caption = i

Label3.Caption = n
DoEvents



Cela devrait résoudre ton problème d'affichage.


DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
28 juin 2005 à 21:22
Merci à tous votre aide m'aura été tres utile
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
29 juin 2005 à 20:25
je signale que le deuxième Exit For ne sera jamais exécuté,

donc la première boucle continuera d'être exécutrée même si la réponse est trouvée.

à défaut de même un Booléan voici une autre solution moins élégante:





For i = -100 To 100

For n = -100 To 100

If a * i + b * n = c Then

Label2.Caption = i

Label3.Caption = n

Exit For

<strike>Exit For

</strike> End If

Next n

if n < 101 then Exit For

Next i


Daniel
0
Rejoignez-nous