OVH Cloud OVH Cloud

Une erreur qui peut faire perdre du temps (surtour aux débutants)

1 réponse
Avatar
Patrice Henrio
Dans le code suivant


For I = 1 To NbLimes
If TabLimes(I).TypeDePoints = 1 Then
Point = TabLimes(I).PremierPoint
If Point > Fin Then
TabLimes(I).PremierPoint = Point - Diff
Point = TabLimes(I).DernierPoint
TabLimes(I).DernierPoint = Point - Diff
Workbooks("LIMES.XLS").Sheets("Limes").Cells(I + 1, 3) =
TabLimes(I).PremierPoint
Workbooks("LIMES.XLS").Sheets("Limes").Cells(I + 1, 6) =
TabLimes(I).DernierPoint
End If
Next I

Le compilateur VB s'arrète sur le Next et nous dit "erreur : Next sans For"
On recherche donc si toutes nos boucles se terminent bien et on ne trouve
pas.

En fait l'erreur n'est pas sur le For...Next mais sur le premier If qui n'a
pas de End If.

Les professionnels de VB ont sûrement vu tout de suite mais il y a déjà
quelques temps que je souhaitais commencer un catalogue des erreurs dont le
libellé ne se rapportait pas à l'erreur principale.

1 réponse

Avatar
Patrice Henrio a écrit :

Dans le code suivant


For I = 1 To NbLimes
If TabLimes(I).TypeDePoints = 1 Then
Point = TabLimes(I).PremierPoint
If Point > Fin Then
TabLimes(I).PremierPoint = Point - Diff
Point = TabLimes(I).DernierPoint
TabLimes(I).DernierPoint = Point - Diff
Workbooks("LIMES.XLS").Sheets("Limes").Cells(I + 1, 3) =
TabLimes(I).PremierPoint
Workbooks("LIMES.XLS").Sheets("Limes").Cells(I + 1, 6) =
TabLimes(I).DernierPoint
End If
Next I

Le compilateur VB s'arrète sur le Next et nous dit "erreur : Next sans For"
On recherche donc si toutes nos boucles se terminent bien et on ne trouve
pas.

En fait l'erreur n'est pas sur le For...Next mais sur le premier If qui n'a
pas de End If.

Les professionnels de VB ont sûrement vu tout de suite mais il y a déjà
quelques temps que je souhaitais commencer un catalogue des erreurs dont le
libellé ne se rapportait pas à l'erreur principale.





Il est vrai que cela peut consommer beaucoup d'aspirine....

De même avec select case etc....

C'est une très bonne idée de le souligner.

Christophe