Rechercher : dans
Par :

VBA/Excel Instruction: On Error Resume Next

Dernière réponse le 6 nov 2009 à 12:56:35 loic, le 3 mai 2007 à 09:07:27 
 Signaler ce message aux modérateurs

Bonjour,

Pb. en VBA Excel

J'ai un problème avec l'instruction "on error resume next", je dois mal l'utiliser ou je n'ai pas la bibliothéque je ne sais pas ...

Où que je place l'instruction dans mon code elle n'est pas prise en compte
Exemple:

On Error Resume Next
Workbooks.Open "le chemin du fichier à ouvrir"

Si le fichier n'esiste pas, il me met l'erreur qd meme.

Je fonctionne sous Excel 2003

Merci d'avance.

Configuration: Excel 2003
Windows XP
Internet Explorer 6.0

1

sncf, le 3 mai 2007 à 16:47:08

Bonjour*
que veux tu faire quand le ficher n'existe pas ?

Répondre à sncf

2

flofido, le 3 mai 2007 à 18:19:36

Pour utiliser Resume next ... il faut que l'erreur soit générée dans une boucle avec Next, genre FOR ... NEXT

Pour ton exemple , Je pense que tu devrais utiliser , On error GoTo

Répondre à flofido

3

us, le 3 mai 2007 à 19:37:12
  • +4

Bonjour,

N'importe quoi ! RESUME NEXT n'a rien à voir avec FOR TO NEXT !!

LE problème c'est que l'exemple proposé est tout à fait juste, et fonctionne très bien ! A savoir :

Sub essai()
On Error Resume Next
Workbooks.Open "le chemin du fichier à ouvrir"
End Sub

NE déclanche pas le message d'erreur. Si on met On error resume next en REM alors on obtient l'erreur 1004.

DONC Loic, il faudrait voir plus loin... Est-ce que tu désactive de nouveau la gestion des erreurs ? PAR exemple avec On Error GoTo 0 permet de désactiver la gestion d'erreur dans la routine en cours.
A+
Amicalement, Us.

Répondre à us

4

Christelle, le 21 sep 2007 à 12:06:42

J'ai exactement le même pb que Loic. Est ce quelqu'un à une idée d'ou cela vient?

Répondre à Christelle

5

Christelle, le 21 sep 2007 à 12:11:27

Loic, j'ai le même pb que toi; as-tu trouvé une solution?

Répondre à Christelle

6

ShaBoo, le 21 sep 2007 à 12:20:12

Bonjour,

le "On error resume next" evite de générer une erreur.

Si par exemple tu fais une action d'ecriture sur un fichier en lecteur seul, tu ne verras pas l'erreur et l'action continuera sans rien faire.

Ce qu'il faut faire dans :

- Traiter la var. "Err" après chaque action.

Ex :

Dim x
On Error Resume Next
Err.Raise 6
If Err.Number <> 0 Then Err.Clear

Répondre à ShaBoo

7

Lupin.A, le 21 sep 2007 à 12:25:43
  • +3

Bonjour,

voici un exemple d'utilisation :

Sub Essai()
    On Error Resume Next
    Workbooks.Open "C:\MonFichier.xls"
    If (Err.Number > 0) Then
        MsgBox "Impossible d'ouvrir le fichier"
    End If
End Sub
'

Lupin

Répondre à Lupin.A

8

Christelle, le 21 sep 2007 à 12:37:17

G toujour le même pb sur la méthode QUIT
Erreur : "Sub ou Function non défini"

Function FermeWord() As Long

On Error Resume Next


If Not GASI_Imp.oMonwd Is Nothing Then

'** A3/101 : boucle d'attente de fin des impressions en cours
While GASI_Imp.oMonwd.BackgroundPrintingStatus > 0
Wend

GASI_Imp.oMonwd.Quit False --> ERREUR "Sub ou Function non défini"
Set GASI_Imp.oMonwd = Nothing
End Function

Répondre à Christelle

9

Lupin.A, le 21 sep 2007 à 13:11:06

Bonjour,

GASI_Imp.oMonwd.Quit

devrait plutôt se lire :

GASI_Imp.oMonwd.Close

et si je vois la ligne de libération :

Set GASI_Imp.oMonwd = Nothing

où est la ligne d'initialisation :

Set GASI_Imp.oMonwd = CreateObject("Word.Application")

???

Lupin

Répondre à Lupin.A

10

Christelle, le 21 sep 2007 à 14:36:46

J'ai remplace
GASI_Imp.oMonwd.Quit
par
GASI_Imp.oMonwd.Close
est ca marche !!! Merci Lupin de ton aide

Par contre, j'ai une autres message "Sub ou function non defini"

'Récupération de la fenêtre de publipostage
Set DocPrint = GASI_Imp.oMonwd.ActiveDocument

...

' impression de la lettre au format PDF
DocPrint.PrintOut PrintToFile:=False

....

'On ferme la fenêtre imprimée
On Error Resume Next
'On ferme la fenêtre imprimée
DocPrint.Close False --> Sub ou function non défini
Set DocPrint = Nothing
Err.Clear
on Error GoTo ErreurWord
'On vérifie qu'un autre document n'est pas ouvert, et si
'c'est le cas on le ferme
For Each Doc In GASI_Imp.oMonwd.Documents
Doc.Close False
Next Doc

Quelqu'un a-t-il une idée pourquoi le message "Sub ou function non defini" est remontée alors que j'ai mis "On Error Resume Next"

Répondre à Christelle

11

Lupin.A, le 21 sep 2007 à 18:17:51

Re :

DocPrint.Close

devrait plutôt se traduire par :

DocPrint.ClosePrintPreview
DocPrint.Close

Lupin

Répondre à Lupin.A

12

hijag, le 26 sep 2007 à 10:19:16

J'ai excatement le meme probleme avec on error resume next
en excel 2000 le code fonctionne en 2003 il s'arrete sur chaque erreur ?????

Répondre à hijag

13

christelle, le 1 oct 2007 à 11:31:07

Bonjour,

J'ai aussi Excel 2003
et j'ai toujours l'erreur
DocPrint.Close False --> Sub ou function non défini

Répondre à christelle

14

Christelle, le 3 oct 2007 à 09:15:12

Bonjour,
Quelqu'un a une idée pourquoi le "on error resume next" ne marche pas avec Office 2003 ???

Merci si quelqu'un peut m'aider

Répondre à Christelle

15

Christelle, le 3 oct 2007 à 10:09:15

Bonjour,
hijag, je n'ai plus de pb. En effet, j'ai résolu un autre bug ce matin qui je pense a résolu c'est erreur

Lors de la conversion du doc en pdf, j'ai rajouté la boucle

' Tant que la propriété de cPrinterStop est à False, on laisse le temps au composant
' de terminer l'export PDF
While myPDFCreator.cPrinterStop = False
DoEvents
Wend

juste avant le PrintOut

Plus aucun message d'erreur ne m'est remonté maintenant

Tu dois donc avoir une autre erreur dans ton prog

Répondre à Christelle

16

Mourad EL Bakkouri, le 3 oct 2007 à 20:02:22

Bonjour,

IL Suffit de rechercher le fichier avant de lancer la commande ON ERROR

Ex :

IFf Dir("Le Chemin + Nom du Fichier") = "" Then
Msgbox "Fichier Introuvable "
ELSE
ON ERROR RESUME NEXT
...
...
...
END IF

Répondre à Mourad EL Bakkouri

17

Le Dev Masqué, le 29 déc 2007 à 11:37:16
  • +1

Bonjour,

Si "On error resume next" semble ne pas être actif (VBA s'arrete quand même sur les erreurs), vérifier :
dans VBA, menu Outils/Options, onglet Général
que la récupération d'erreur n'est pas sur "Arret sur toutes les erreurs".

Dans ce cas, sélectionner "Arret sur les erreurs non gérées".

Bonne chance

Répondre à Le Dev Masqué

18

 Ete, le 6 nov 2009 à 12:56:35

Bonjour

Merci pour votre aide, que même après presque 2 ans que vous l’aviez posté, pour moi elle a été de grande valeur aujourd’hui.

Excusez-moi pour mon "petit français"

Je vous remercie beaucoup encore, depuis le Brésil

Ete

Répondre à Ete