Boucle until vb net

Christof422 Messages postés 871 Date d'inscription   Statut Membre Dernière intervention   -  
Deathmann Messages postés 222 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je n'arrive pas a arriver a ce que je veux. Pourtant cela ne doit pas être très compliqué

do 
  intitulecommande= inputbox("Entrez ou scannez le code de la commande, pour afficher son contenu.") 
   
If intitulecommande.Length=0 Then
			Me.Close
			
		End If

  For boucle=1 To 16 
   If intitulecommande=nomcommande(boucle) Then 
    exit for 
   End If 
   If boucle=16 And intitulecommande<>nomcommande(boucle) Then 
    msgbox("Le code barre saisi est invalide.",vbCritical,"Erreur") 
    exit for 
   End If 
    
  Next boucle 
  loop Until intitulecommande<>nomcommande(boucle)



Ce que je veux faire:

On affiche une inputbox
On entre le code barre dans celle-ci

Si il est trouver dans le tableau alors on sort de la boucle for et fait la traitement par le suite.

Si il n'est pas trouvé on affiche un message (msgbox) et on recommence tant que le code barre n'es pas bon.
Sauf si l'utilisateur appui sur le bouton annuler de l'inputbox (intitulecommande.Lenght=0)
Dans ce cas on ferme la msgbox et on ferme la form. (form.close)

Ce que cela fait:

La boucle loop until ne se fait pas

Si j'enlève le exit for après la msgbox l'application plante.

Merci pour vos réponses.

A voir également:

1 réponse

Deathmann Messages postés 222 Date d'inscription   Statut Membre Dernière intervention   59
 
Bonjour,

Le passage :

"""If boucle=16 And intitulecommande<>nomcommande(boucle) Then
msgbox("Le code barre saisi est invalide.",vbCritical,"Erreur")
exit for
End If"""

n'est pas bon, si tu essayes ça je pense que cela passera mieux :

""" If boucle=16 And intitulecommande<>nomcommande(boucle) Then
msgbox("Le code barre saisi est invalide.",vbCritical,"Erreur")
End If
exit for"""

Pour explication, une boucle imbriquée ne peut pas se croiser ,c'est à dire qu'une boucle ne peut pas se finir aprés une boucle dans laquelle celle-ci est originaire

Exemple :

For i = 1 to 10

If boucle = 16 then
......
Next

End if

Cordialement.
0
Christof422 Messages postés 871 Date d'inscription   Statut Membre Dernière intervention   212
 
Merci pour ta réponse. J'ai réussi a me débrouiller autrement depuis.
Mais merci pour le conseil.
0
Deathmann Messages postés 222 Date d'inscription   Statut Membre Dernière intervention   59
 
de rien, bonne continuation
0