Bonjour, je suis actuellement sur une petite application excel et j'ai un soucis au niveau d'une boucle do while qui ne s'arrète pas alors que le test en début de boucle devrait l'arréter...
Voilà le morceau de code de cette boucle :
Do While i <= max
'If Range("B" & i).Value = "" Then
'erreur = 1
'MsgBox "Veuillez renseigner correctement la cellule B " & i & "."
'Exit Sub
'End If
If Range("E" & i).Value = "" And Range("B" & i).Value <> "" Then
erreur = 1
MsgBox "Veuillez renseigner correctement la cellule E " & i & "."
Exit Sub
End If
If Range("F" & i).Value = "" And Range("B" & i).Value <> "" Then
erreur = 1
MsgBox "Veuillez renseigner correctement la cellule F " & i & "."
Exit Sub
End If
If Range("G" & i) = "" And Range("B" & i).Value <> "" Then
erreur = 1
MsgBox "Veuillez renseigner correctement la cellule G " & i & "."
Exit Sub
End If
If Range("H" & i) <> "R23" And Range("G" & i) = "oui" Then
somme = somme + Range("F" & i)
End If
i = i + 1
Loop
Pour commentaire, cette boucle ne fait que des tests sur des cases, i est la valeur qui s'incrémente et "max" est la valeur maximale que i peut prendre.
Par exemple ici, j'ai max = 9 et pour cette boucle (à l'aide de l'espion en début de ligne et de msgbox de valeur de i et max), j'arrive à des trucs genre i = 10 et max = 9 et ça reste dans la boucle ... si quelqu'un peut m'éclairer là dessus, merci.
Voilà le morceau de code de cette boucle :
Do While i <= max
'If Range("B" & i).Value = "" Then
'erreur = 1
'MsgBox "Veuillez renseigner correctement la cellule B " & i & "."
'Exit Sub
'End If
If Range("E" & i).Value = "" And Range("B" & i).Value <> "" Then
erreur = 1
MsgBox "Veuillez renseigner correctement la cellule E " & i & "."
Exit Sub
End If
If Range("F" & i).Value = "" And Range("B" & i).Value <> "" Then
erreur = 1
MsgBox "Veuillez renseigner correctement la cellule F " & i & "."
Exit Sub
End If
If Range("G" & i) = "" And Range("B" & i).Value <> "" Then
erreur = 1
MsgBox "Veuillez renseigner correctement la cellule G " & i & "."
Exit Sub
End If
If Range("H" & i) <> "R23" And Range("G" & i) = "oui" Then
somme = somme + Range("F" & i)
End If
i = i + 1
Loop
Pour commentaire, cette boucle ne fait que des tests sur des cases, i est la valeur qui s'incrémente et "max" est la valeur maximale que i peut prendre.
Par exemple ici, j'ai max = 9 et pour cette boucle (à l'aide de l'espion en début de ligne et de msgbox de valeur de i et max), j'arrive à des trucs genre i = 10 et max = 9 et ça reste dans la boucle ... si quelqu'un peut m'éclairer là dessus, merci.