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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
"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
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
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