Do Until Range("G" & j).Value = 1

acsnoop -  
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour,

Voila...C'est un programme qui me rend ce que je souhaite... mais poutant débogage sur la ligne _: Do Until Range("G" & j).Value = 1... Quelqu'un saurait-il ou se trouve l'erreur et comment la corriger

Sub Macrotest()
i = 2
Do Until Range("A" & i).Value = ""
If Range("G" & i).Value = 1 Then
nbpal = Range("E" & i).Value
nbpick = Range("F" & i).Value
j = i + 1
Do Until Range("G" & j).Value = 1
nbpal = nbpal + Range("E" & j).Value
nbpick = nbpick + Range("F" & j).Value
j = j + 1
Loop
Range("E" & i).Value = nbpal
Range("F" & i).Value = nbpick
End If
i = i + 1
Loop
End Sub
A voir également:

1 réponse

lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Bonjour,
Il n'y a pas d'erreur de syntaxe dans ta macro mais probablement un dépassement de capacité, la condition dans
("G" & j).Value = 1 n'est probablemenbt pas rencontrée.
Pour tester met un stop sur j

Sub Macrotest()
    i = 2
    Do Until Range("A" & i).Value = ""
        If Range("G" & i).Value = 1 Then
            nbpal = Range("E" & i).Value
            nbpick = Range("F" & i).Value
            j = i + 1
            Do Until Range("G" & j).Value = 1
                nbpal = nbpal + Range("E" & j).Value
                nbpick = nbpick + Range("F" & j).Value
                j = j + 1
                If j = 30000 Then Stop
            Loop
            Range("E" & i).Value = nbpal
            Range("F" & i).Value = nbpick
        End If
        i = i + 1
        If i = 30000 Then Stop
    Loop
End Sub

Si le débogueur s'arrète sur une des lignes c'est que la supposition est la bonne. (a moins que tu ai plus de 30000 lignes, dans ce cas met 60000.)
Comme je ne sais pas ce qu'il y a dans ton classeur c'est pas possible d'en dire plus.
A+
0