Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème de gestion d'erreur

2 réponses
Avatar
Sébastien
Bonjour,

J'ai un souci pour une gestion d'erreur en VBA (mais c'est en fait un pb de
programmation VB). J'ai un dossier contenant des fichiers Excel, nommés par
un numéro : 1.xls, 2.xls, ... jusqu'à par exemple 50.xls.

Dans un fichier "dépouillement.xls", je cherche à ouvrir dans l'ordre chacun
de ces fichiers pour y lire des valeurs. Un truc du style :

For i = 1 to 50
Ouvrir fichier i.xls
Lire les valeurs
Travailler avec ces valeurs
Fermer le fichier i.xls
Next i

Jusque là tout va bien. Le problème, c'est que certains fichiers n'existent
pas, par exemple le fichier 20.xls n'existe pas, et j'aimerais trouver un
truc pour gérer ce pb :

For i = 1 to 50
On error goto GestionErreur
Ouvrir fichier i.xls
Lire les valeurs
Travailler avec ces valeurs
Fermer le fichier i.xls
Next i

GestionErreur :
Next i

Evidemment, VBA m'insulte parce que le "Next i" qu'il trouve dans ma gestion
d'erreur ne correspond à rien selon lui. Ce que j'aimerais, c'est qu'en cas
de détection d'erreur (au niveau de ma ligne "Ouvrir fichier i.xls"), il
passe tout de suite au i suivant. Là je bloque.

Quelqu'un a-t-il une solution à me proposer ?

Merci d'avance,

Séb

2 réponses

Avatar
François Picalausa
Bonjour/soir,

Essaye ceci:

For i = 1 to 50
On error goto GestionErreur
Ouvrir fichier i.xls



Lire les valeurs
Travailler avec ces valeurs
Fermer le fichier i.xls


BoucleSuiv:
Next i

GestionErreur :


Select Case Err.Number
Case 'fichier inexistant
Resume BoucleSuiv
Case 'autre erreur
...
end select

Tu pourrais aussi utiliser:

On Error Resume Next
For i = 1 to 50
GestionErreur
If Err.Number = 0 Then
Ouvrir fichier i.xls
Lire les valeurs
Travailler avec ces valeurs
Fermer le fichier i.xls
End If
Next i

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com

"Sébastien" a écrit dans le message de
news:3ffef7d5$0$19286$
Bonjour,

J'ai un souci pour une gestion d'erreur en VBA (mais c'est en fait un pb


de
programmation VB). J'ai un dossier contenant des fichiers Excel, nommés


par
un numéro : 1.xls, 2.xls, ... jusqu'à par exemple 50.xls.

Dans un fichier "dépouillement.xls", je cherche à ouvrir dans l'ordre


chacun
de ces fichiers pour y lire des valeurs. Un truc du style :

For i = 1 to 50
Ouvrir fichier i.xls
Lire les valeurs
Travailler avec ces valeurs
Fermer le fichier i.xls
Next i

Jusque là tout va bien. Le problème, c'est que certains fichiers


n'existent
pas, par exemple le fichier 20.xls n'existe pas, et j'aimerais trouver un
truc pour gérer ce pb :

For i = 1 to 50
On error goto GestionErreur
Ouvrir fichier i.xls
Lire les valeurs
Travailler avec ces valeurs
Fermer le fichier i.xls
Next i

GestionErreur :
Next i

Evidemment, VBA m'insulte parce que le "Next i" qu'il trouve dans ma


gestion
d'erreur ne correspond à rien selon lui. Ce que j'aimerais, c'est qu'en


cas
de détection d'erreur (au niveau de ma ligne "Ouvrir fichier i.xls"), il
passe tout de suite au i suivant. Là je bloque.

Quelqu'un a-t-il une solution à me proposer ?

Merci d'avance,

Séb






Avatar
Sébastien
Merci pour la réponse, je teste de suite !

Séb