Revenir à la boucle for du handheld d'erreur dans VBA

Comment revenir de Errorhandler dans VBA à la boucle?

for x = 1 to 1000 On error goto errorhandler Sheets("Sheet1").Cells(x, "B") = x * Sheets("Sheet1").Cells(x, "A").Value continue: Next Exit sub Errorhandler: Sheets("Sheet1").Cells(x,"B") = "Error occured" Resume continue 

Cela ne fonctionne pas. Je veux que, si une erreur se produit dans la boucle for, elle écrira dans la cellule "Erreur survenue", puis continue la boucle. Comment faire?

 On Error GoTo Errorhandler 'put once, outside loop For x = 1 To 1000 'use value2 if you dont work with date/time Sheets("Sheet1").Cells(x, "B").Value2 = x * Sheets("Sheet1").Cells(x, "A").Value2 Next Exit Sub Errorhandler: Sheets("Sheet1").Cells(x, "B").Value2 = "Error occured" Resume Next '<< Answer to original question. The Resume to continue label should also work 

Votre code fonctionne lorsque je le teste, alors je ne suis pas sûr de savoir quel problème spécifique vous rencontrez, mais vous pouvez envisager de refactoriser le code pour éviter les instructions GoTo , ce qui améliorera sa lisibilité:

 Sub foo() Dim x As Long Dim val For x = 1 To 1000 On Error Resume Next val = x * Sheets("Sheet1").Cells(x, "A").Value If Err.Number <> 0 Then Sheets("Sheet1").Cells(x, "B") = "Error occured" Else: Sheets("Sheet1").Cells(x, "B") = val End If On Error GoTo 0 Next End Sub