Do ... Loop until

Moustike31 Messages postés 19 Date d'inscription mardi 2 octobre 2012 Statut Membre Dernière intervention 2 octobre 2012 - 29 mai 2009 à 10:42
Moustike31 Messages postés 19 Date d'inscription mardi 2 octobre 2012 Statut Membre Dernière intervention 2 octobre 2012 - 29 mai 2009 à 15:51
Bonjour,
En VBA j'ai écris un code et je voudrai rajouter Do ... Loop until, mais je sais pas trop comment mis prendre, est ce que quelqu'un pourrai me dire comment l'utiliser?
Merci.
Nat
A voir également:

6 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
29 mai 2009 à 12:55
Do
<code>
Loop Until <Condition>
0
Moustike31 Messages postés 19 Date d'inscription mardi 2 octobre 2012 Statut Membre Dernière intervention 2 octobre 2012
29 mai 2009 à 14:41
C'est gentil d'avoir répondu.
Le truc c'est que je suis une réelle débutante et que Do ... Loop until je dois le mettre en plein milieu d'un code sauf que j'ai fais plusieurs essais et je n'arrive pas à trouver le bon emplacement.
Mais merci quand même.
0
steph064 Messages postés 90 Date d'inscription mardi 30 décembre 2008 Statut Membre Dernière intervention 10 juin 2009
29 mai 2009 à 14:50
tu as loop until (jusqu'à) et loop while (tant que) si je me goure pas. Si tu nous montre pas ton code on pourra pas t'aider.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
29 mai 2009 à 14:51
faut le mettre a la quatrièeme ligne, avant le Mid$, bien évidemment
0

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

Posez votre question
cedrad Messages postés 5 Date d'inscription dimanche 22 juin 2008 Statut Membre Dernière intervention 29 mai 2009
29 mai 2009 à 14:51
salut,

Mais il faut que tu sache quelle action, tu veux répéter, pourquoi, et comment elle s'arrêtera,

avec ces 3 éléments tu saura ou la placer :-)

Sinon laisse un bout de ton code qu'on t'aide :-)

A plus :-)
0
Moustike31 Messages postés 19 Date d'inscription mardi 2 octobre 2012 Statut Membre Dernière intervention 2 octobre 2012
29 mai 2009 à 15:51
Merci pour vos indications.
Je vous laisse tout de même un bout de mon code pour que vous puissiez comprendre. je vais quand meme réfléchir dessus aussi.
A la base (sans mettre do ... Loop until) mon code bloque (en rouge)
En fait c un bout de code pour une optimisation de barre.
Dans tableautoutesréfrences se trouve toutes les références de lame avec les longueur de barre disponible.
Table barre est le débit d'une reference et barrebrut est une longueur disponible pour la meme référénce.
Par exemple pour la référence 1230 les longueur disponible sont 4500, 6000 et 7000 mm.
Or si j'ai un débit de 5000 le code bloque car il ne peut pas analyser avec la longueur 4500 et je voudrai qu'il la passe et donne la mise en barre pour 6000 et 7000.
J'espère que j'ai été assez explicite.
code :
Sub traiteRefenCours(ByRef tabRefTraitement() As String, lame As Boolean)
    Dim j As Integer
    Dim z As Integer
    Dim barreBrut As Long
    Dim v As Integer
    Dim m As Integer
    v = 1
    m = 4
    Dim Qte As Integer
    Dim cumulQte As Integer
    Dim cumulChutes As Long
   
    cumulQte = 1
    cumulChutes = 0
   
    If lame = True Then
        'cas d'une lame optilisation de mise en barre
    While tableauToutesReferences(z, 0) <> ""
        If tabRefTraitement(j, 0) = tableauToutesReferences(z, 0) Then
            While tableauToutesReferences(z, v) <> ""
                barreBrut = tableauToutesReferences(z, v)
                While tabRefTraitement(j, 0) <> ""
                    Qte = tabRefTraitement(j, 1)
                    While Qte > 0
                       
                        If (barreBrut - tabRefTraitement(j, 2) >= 0) Then
                            Qte = Qte - 1
                            barreBrut = barreBrut - tabRefTraitement(j, 2) - tabRefTraitement(j, 4)
                            tableBarre(l, 0) = tabRefTraitement(j, 0)
                            tableBarre(l, m) = tabRefTraitement(j, 2)
                            m = m + 1
                        Else
                            'reste de la barre brut
                            tableBarre(l, 2) = barreBrut
                            cumulChutes = cumulChutes + barreBrut
                            barreBrut = tableauToutesReferences(z, v)
                             m = m + 1
                            tableBarre(l, 3) = tableauToutesReferences(z, v)
                           
                            'on compte le nombre de barres utilisees par reference
                            cumulQte = cumulQte + 1
                            l = l + 1
                            m = 4
                        End If
                       
                    Wend
                        ' si le restant de ma barre moins la coupe est Superieur a 0, on peut couper la barre
                    j = j + 1
                Wend
                cumulChutes = cumulChutes + barreBrut
                tableBarre(l, 2) = cumulChutes
                cumulChutes = 0
                m = m + 1
                tableBarre(l, 3) = tableauToutesReferences(z, v) '
                m = m + 1
                tableBarre(l, 1) = cumulQte
                cumulQte = 1
                j = 0
                l = l + 1
                m = 4
           
           
                v = v + 1
            Wend
   
        End If
        j = 0
        z = z + 1
    Wend


       Else
        'cas d'un cintre, pas besoin d'optimiser
        While tabRefTraitement(j, 0) <> ""
            j = j + 1
        Wend
        tableBarre(l, 0) = tabRefTraitement(j - 1, 0)
        tableBarre(l, 1) = tabRefTraitement(j - 1, 3)
        tableBarre(l, 2) = -1 '-1 indique un cintre, cette valeur sera teste lors de l'ecriture notepad
        l = l + 1
    End If
 
   
    Erase tabRefTraitement
End Sub
0
Rejoignez-nous