Imbrication de boucle while

Bonjour à tous,

j'ai imbriqué deux boucles while dans le morceau de code suivant. Mon problème est que la valeur de a ne s'incrémente pas dans le calcul de la valeur NoteBruteTempo. Elle s'incrémente pourtant bien dans la commande "Cells(dernierAttendu+1,4+a).Select"
Je pense que le problème vient de l'imbrication des boucles, il y a surement une subtilité que je ne connais pas

Merci d'avance pour votre aide

        Dim NoteBrute As Double
        Dim NoteBruteTempo As Double
        Dim i As Integer
        Dim a As Integer

        Do While (a + 4 < derniereColonne + 1)

            Do While (i < NbAttendu)

            NoteBruteTempo = Cells(6 + i, 2) * Cells(6 + i, 4 + a)

            NoteBrute = NoteBrute + NoteBruteTempo
            i = i + 1
            Loop

        Dim NoteFinale As Double
        NoteFinale = NoteBrute / 3 * 20 / Cells(dernierAttendu + 1, 2)

        Cells(dernierAttendu + 1, 4 + a).Select
        ActiveCell.FormulaR1C1 = NoteFinale

        a = a + 1

        Loop

Bonjour

Peut être en sotant "Dim NoteFinale As Double" de la boucle et en le mettant en début de procédure avec les autres déclarations.

Bonjour,

Je dirais qu'il y a des parenthèses inappropriées (dans les lignes Do While), mais comme on dispose pas de fichier pour vérifier!

en attendant:

        Dim NoteBrute As Double
        Dim NoteBruteTempo As Double
        Dim i As Integer
        Dim a As Integer
        Dim NoteFinale As Double

        Do While a + 4 < derniereColonne + 1
            Do While i < NbAttendu
                NoteBruteTempo = Cells(6 + i, 2) * Cells(6 + i, 4 + a)
                NoteBrute = NoteBrute + NoteBruteTempo
                i = i + 1
            Loop
            NoteFinale = NoteBrute / 3 * 20 / Cells(dernierAttendu + 1, 2)
            Cells(dernierAttendu + 1, 4 + a).Value = NoteFinale
            a = a + 1
        Loop

Cdlt

Bonjour Yal, Bonjour Arturo,
merci pour vos réponses.
J'ai essayé ce que vous proposez mais cela ne fonctionne pas mieux....

Si nous disposions d'un fichier sans données confidentielles, nous verrions peut-être mieux où se situe le problème, parce que là, on a des variables dont ne connaît pas la valeur et qui laisseraient supposer qu'elles n'en contiennent pas.

Voila le fichier, c'est en chantier....

là on comprend mieux, il faudrait penser à réinitialiser à 1 la valeur de i

Do While a + 4 < derniereColonne + 1
i = 1 'initialisation de i
Do While i < NbAttendu
NoteBruteTempo = Cells(6 + i, 2) * Cells(6 + i, 4 + a)
NoteBrute = NoteBrute + NoteBruteTempo
i = i + 1
Loop
NoteFinale = NoteBrute / 3 * 20 / Cells(dernierAttendu + 1, 2)
Cells(dernierAttendu + 1, 4 + a).Value = NoteFinale
a = a + 1
Loop

Splendide !!!!

J'ai également du réinitialiser la valeur de NoteBrute

Merci Arturo

Rechercher des sujets similaires à "imbrication boucle while"