Language vba excel - boucle
Résolu
galt19
-
galt19 -
galt19 -
Bonjour à tous,
Je suis en train de mettre au point un programme concernant une facture et une base de donnée de produit à vendre. Mon objectif est de faire une demande msgbox pour entrer la référence d'un produit, et afficher la désignation et le prix unitaire, et cela ligne après ligne sur le devis jusqu'à ce que la réponse au msxbox soit "non".
Mon programme fonctionne pour la première ligne, et lorsque je dis non cela s'arrête. En revanche, lorsque je dis oui pour entrer un nouveau produit, (à la deuxième ligne donc) la boucle devient infinie et les caractéristiques ne s'affichent pas.
Voici mon programme :
réponse = MsgBox("Voulez-vous indiquer une nouvelle référence de plante ?", vbYesNo, "PLANTE")
m = 3
n = 15
x = 1
If réponse = vbYes Then
Do While x > 0
plante = InputBox("Entrez la référence de la plante : ", "PLANTE", "ALB")
Worksheets("Devis").Cells(n, 1).Value = plante
Do While trouvé <> True
m = m + 1
If plante = Worksheets("Plantes").Cells(m, 1).Value Then
trouvé = True
Worksheets("Devis").Cells(n, 2).Value = Worksheets("Plantes").Cells(m, 2).Value
Worksheets("Devis").Cells(n, 4).Value = Worksheets("Plantes").Cells(m, 3).Value
n = n + 1
x = 1
réponse = MsgBox("Voulez-vous indiquer une nouvelle référence de plante ?", vbYesNo, "PLANTE")
End If
If réponse = vbNo Then
x = -1
End If
Loop
Loop
ElseIf réponse = vbNo Then
x = -1
End If
Qu'est ce qui pourrait justifier le fait que la boucle ne redémarre pas du début ?
Merci d'avance
Je suis en train de mettre au point un programme concernant une facture et une base de donnée de produit à vendre. Mon objectif est de faire une demande msgbox pour entrer la référence d'un produit, et afficher la désignation et le prix unitaire, et cela ligne après ligne sur le devis jusqu'à ce que la réponse au msxbox soit "non".
Mon programme fonctionne pour la première ligne, et lorsque je dis non cela s'arrête. En revanche, lorsque je dis oui pour entrer un nouveau produit, (à la deuxième ligne donc) la boucle devient infinie et les caractéristiques ne s'affichent pas.
Voici mon programme :
réponse = MsgBox("Voulez-vous indiquer une nouvelle référence de plante ?", vbYesNo, "PLANTE")
m = 3
n = 15
x = 1
If réponse = vbYes Then
Do While x > 0
plante = InputBox("Entrez la référence de la plante : ", "PLANTE", "ALB")
Worksheets("Devis").Cells(n, 1).Value = plante
Do While trouvé <> True
m = m + 1
If plante = Worksheets("Plantes").Cells(m, 1).Value Then
trouvé = True
Worksheets("Devis").Cells(n, 2).Value = Worksheets("Plantes").Cells(m, 2).Value
Worksheets("Devis").Cells(n, 4).Value = Worksheets("Plantes").Cells(m, 3).Value
n = n + 1
x = 1
réponse = MsgBox("Voulez-vous indiquer une nouvelle référence de plante ?", vbYesNo, "PLANTE")
End If
If réponse = vbNo Then
x = -1
End If
Loop
Loop
ElseIf réponse = vbNo Then
x = -1
End If
Qu'est ce qui pourrait justifier le fait que la boucle ne redémarre pas du début ?
Merci d'avance
A voir également:
- Language vba excel - boucle
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
1 réponse
Bonjour,
Essais comme ça:
Essais comme ça:
réponse = MsgBox("Voulez-vous indiquer une nouvelle référence de plante ?", vbYesNo, "PLANTE") encore = True While encore <> False m = 3 n = 15 x = 1 If réponse = vbYes Then Do While x > 0 plante = InputBox("Entrez la référence de la plante : ", "PLANTE", "ALB") Worksheets("Devis").Cells(n, 1).Value = plante Do While trouvé <> True m = m + 1 If plante = Worksheets("Plantes").Cells(m, 1).Value Then trouvé = True Worksheets("Devis").Cells(n, 2).Value = Worksheets("Plantes").Cells(m, 2).Value Worksheets("Devis").Cells(n, 4).Value = Worksheets("Plantes").Cells(m, 3).Value n = n + 1 x = 1 réponse = MsgBox("Voulez-vous indiquer une nouvelle référence de plante ?", vbYesNo, "PLANTE") If reponse = vbYes Then encore = False Else encore = True x = x - 1 End If End If Loop Loop ElseIf réponse = vbNo Then encore = True x = -1 End If Wend
Merci, j'ai essayé comme ça, par contre ça fonctionne pas. J'ai toujours le problème de boucle infinie dès la deuxième référence.
Pour décrire : voulez vous indiquer une nouvelle réf => oui, Entrez la ref : j'entre la réf et tout s'affiche. Voulez vous entrez une nouvelle réf => oui ; entrer la ref = et la il n'y a que la réf qui s'affiche et "entrez la ref" se repose automatiquement. Et quand je mets annuler, cela me supprime la 2eme réf mais la boucle repart de nouveau sur la question. Je ne sais pas comment résoudre ce problème, ca me paraît compliquer.
dsl, je n'avais pas fait de test hier soir. Effectivement ça boucle pas comme il faudrait :(
Avec ça doit mieux tourner:
bonne fin de soirée