Bonjour le forum,
Je débute encore en gestion des erreurs.
Dans un do while loop je vais chercher une valeur avec un fonction Match, or il arrive que le code recherché ne soit pas trouvé, ce qui est d'ailleurs normal, ayant un fichier non exhaustif.
Je souhaitais faire poursuivre le programme dans cette situation. J'ai donc mis un traitement des erreurs sur le type 13 On Error GoTo gesterr, mais je ne souhaite pas que ce traitement s'applique au reste de la boucle je désactive donc celui-ci juste après On Error GoTo 0 et à chaque nouveau tour exécuté par la boucle rebelote j'active et désactive.
Or il semble qu'une fois la première désactivation faite, le retraitement ne fonctionne plus du tout. J'ai à nouveau des messages d'erreur 13 sur la ligneuf = .Cells(Application.Match(Cells(l, 4).Value, .Columns(2), 0), 1).Value
On Error GoTo 0 désactive le traitement des erreurs définitivement tant que l'on ne sort pas de la procédure ?
Je vous remercie !!!
Do While IsEmpty(Cells(l, 4).Value) = False
With Sheets("CALCUL")
'---------------------------------
On Error GoTo gesterr
uf = .Cells(Application.Match(Cells(l, 4).Value, .Columns(2), 0), 1).Value
On Error GoTo 0
mode = ws_ficom.Cells(Application.Match(uf, ws_ficom.Columns(1), 0), 29).Value
'---------------------------------
Select Case mode
Case "HC": Cells(l, c + 1).Value = Cells(l, c).Value * HC
Case "HS", "HJ", "S": Cells(l, c + 1).Value = Cells(l, c).Value * HS
End Select
'---------------------------------
End With
uf_sv:
l = l + 1
Loop
gesterr:
Select Case Err.Number
Case 13: GoTo uf_sv
Case Else: Stop
End Select