On error GoTo ne fontionne pas toujours

Bonjour le forum, petit coucou depuis la Slovaquie pour le travail

J'ai un petit soucis avec la commande On error GoTo.. voir photo

image

L'erreur surviens à la ligne en jaune car la cellule Range(B ligne) est une adresse mail et non une date. (je traite un fichier CSV)

Je voudrais juste passer à la suite: et ne pas exécuter les commandes en cas d'erreurs. J'ai l'impression que parfois le code va bien à "Suite:" et parfois non il plante. Vous avez une idée ? Avez-vous besoin du fichier CSV pour tester le programme ?

Slts,

Gabin

13tmdt-v8.zip (230.86 Ko)

Bonjour, peut-être avec uniquement un simple :

On Error Resume Next

Salut Xmenpl,

merci pour la réponse rapide, j'y avait pensé mais ce ne fonctionne pas car je souhaite réellement survoler une grande partie du code si une erreur surviens lors de la saisie des variables.

Concrètement j'aimerais même si possible passer au next dans ma boucle:

For ligne = 2 To Range("A" & Rows.Count).End(xlUp).Row
    On Error GoTo Suite

[...code...]

Suite:
Next ligne

Peut être que mon problème est plus claire présenté comme cela ?

Bonjour,

Oui :Fait passer un csv SVP

A+

Salut, désolé, Galopin,

je n'arrive pas à créer un CSV similaire, il y a bcp trop d'informations confidentielles ,nom ,adresses etc.. si je le modifie je ne conserve plus le format d'origine et le programme ne fonctionne plus. Je continue de chercher

Si c'est uniquement la Date qui peut engendrer l'erreur ? alors peut-être de cette façon :

For ligne = 2 To Range("A" & Rows.Count).End(xlUp).Row
If Not IsDate("B" & ligne).Value Then
GoTo Suite
Else

code ....

End If
Suite:
Next ligne

Bonjour Gabin37, le fil

Je pencherais quant à moi par une déclaration de tes champs (dueDate, ID, item...) en Variant couplé avec un test sur chaque données du CSV plutôt que par gestion avec ON ERROR

Les CSV étant réputés pour ne pas être toujours "homogène" !

Bien vu Xmenpl, j'ai adapté te cela fonctionne.

For ligne = 2 To Range("A" & Rows.Count).End(xlUp).Row
If IsDate(Range("B" & ligne)) And IsDate(Range("D" & ligne)) And Range("E" & ligne) <> "" Then

code ....

End If
Next ligne

Bonjour Green SoftS, En effet c'est la première fois que je manipule des CSV et le format ne semble pas "régulier" à 100% donc je pense que je perd des données avec mon programme...

Heu oui Gabin encore plus simple, juste la condition sans le Goto ... dès fois on cherche trop loin ce qui crève les yeux

Quand à la perte d'info il faudrait pouvoir étudier le csv pour chercher la différence entre 2 lignes une récupérée correctement et l'autre non.

Bonjour Gabin37, le fil

Effectivement !

En effet c'est la première fois que je manipule des CSV et le format ne semble pas "régulier" à 100% donc je pense que je perd des données avec mon programme...

Je confirme et plutôt deux fois qu'une ! Bienvenue au club des CSV 100% hétérogènes

En général il est préférable de tester chaque champ de chaque enregistrement pour perdre un minimum d'enregistrement, idéalement aucun d'ailleurs !

Rechercher des sujets similaires à "error goto fontionne pas"