Problème avec On error goto

Bonjour,

Dans le fichier ci-joint, je reporte des données dans la colonne B sur la base d'un tableau dans les colonnes F et G.

Si une référence inscrite dans la colonne A est absente dans la colonne F, un message d'erreur apparaît. Dans l'exemple fourni, comme la valeur XXX n'est pas trouvée, mon message d'erreur fonctionne bien.

Mais ceci ne fonctionne qu'une seule fois ! Si j'ai une deuxième référence incorrecte - par exemple si j'écris ZZZ dans la cellule A4 - le message d'erreur apparaît correctement pour la valeur XXX mais pour ZZZ, ça coince !

Savez-vous pourquoi ? Pouvez-vous m'aider à contourner ce problème ?

75demo-20-05.zip (11.24 Ko)

Bonjour,

Supprimer Etiquette bis: et utilisez On Error Resume Next au lieu de On Error Goto

Sub a()

Dim i As Integer, m As Integer, erreur As Variant

Application.ScreenUpdating = False

Range("B1:B65000").ClearContents

For i = 2 To Range("A65000").End(xlUp).Row

On Error Resume Next

m = WorksheetFunction.Match(Cells(i, 1), Range("F1:F5"), 0)

Cells(i, 2) = Range("G" & m)

If m > 0 Then

GoTo Etiquette_ter

Else

MsgBox "Pas de résultat pour " & Cells(i, 1)

End If

Etiquette_ter:

m = 0

Next i

End Sub

Bonjour Yvouille, robjam

tu peux également supprimer le goto ter puisque tu passe a chaque cycle dessus

pour le résultat, tu peux tester le numéro de l'erreur Err.number=0

Option Explicit
Sub a()
Dim i As Integer, m As Integer
Range("B1:B65000").ClearContents
Application.ScreenUpdating = False
For i = 2 To Range("A65000").End(xlUp).Row
  On Error Resume Next
    m = WorksheetFunction.Match(Cells(i, 1), Range("F1:F5"), 0)
    If Err.Number = 0 Then Cells(i, 2) = Range("G" & m)
  On Error GoTo 0
    If m = 0 Then MsgBox "Pas de résultat pour " & Cells(i, 1)
    m = 0
Next i
End Sub

Re-bonjour,

Vos deux solutions fonctionnent parfaitement

Merci à tous deux pour votre aide.

Cordialement.

Rechercher des sujets similaires à "probleme error goto"