Voici une partie de ma macro. Le premier GoTo fonctionne bien. Si le
répertoire sur le réseau est momentanement indisponible, l'instruction passe
à "message:" sinon il passe par "suite:". Mon problème est qu'il bug pour le
2ème GoTo.
Pourquoi après l'instruction de "suite", si le fichier n'est pas trouvé sur
le répertoire P:\ en cours de maintenance, il bug en ne passant pas à
"suite2" pour terminer l'instruction ? Comprend pas.
'si le répertoire P:\ n'existe plus momentanement
On Error GoTo message:
'si le répertoire P:\ n'existe plus momentanement
message:
MsgBox "Problème dans lors de l'envoi du fichier d'enlèvement. Soit le
répertoire est en cours de maintenance, soit le fichier a été supprimé. Merci
de faxer votre demande d'enlèvement qui va s'imprimer, le temps de régler ce
problème.", vbOKOnly + vbOKOnly + vbExclamation, "Problème d'envoi de la
demande d'enlèvement"
'imprime 1 copie à faxer manuellement
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:=DefPrt,
Collate:=True
'continue l'instruction si pas de plantage P:\
suite:
'----- reaffectation de l'imprimante d'origine
Application.ActivePrinter = DefPrt
On Error GoTo suite2:
'Insertion de l'enlèvement dans la base de données commune
ChDir "P:\EQUIPEMENT"
Workbooks.Open Filename:="P:\EQUIPEMENT\base pickup.xls"
Suite2:
' Va à la page de garde
Sheets("pickup").Select
Range("A1").Select
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
Yvan95
Bonjour Denis
Le gestionnaire d'erreur étant déjà actif quand tu arrive à l'instruction GoTo Suite2, celle ci est inopérante.
Il te faut donc désactiver le gestionnaire d'erreur avec une instruction Resume avant de le réactiver.
Remplace donc ton instruction
GoTo Suite2
par
Resume Ici Ici: On Error GoTo Suite2
Cà devrait aller mieux.
OK?
@+
Yvan
"DENIS" a écrit dans le message de news:
Bonjour à tous,
Voici une partie de ma macro. Le premier GoTo fonctionne bien. Si le répertoire sur le réseau est momentanement indisponible, l'instruction passe à "message:" sinon il passe par "suite:". Mon problème est qu'il bug pour le 2ème GoTo. Pourquoi après l'instruction de "suite", si le fichier n'est pas trouvé sur le répertoire P: en cours de maintenance, il bug en ne passant pas à "suite2" pour terminer l'instruction ? Comprend pas.
'si le répertoire P: n'existe plus momentanement On Error GoTo message:
'si le répertoire P: n'existe plus momentanement message: MsgBox "Problème dans lors de l'envoi du fichier d'enlèvement. Soit le répertoire est en cours de maintenance, soit le fichier a été supprimé. Merci de faxer votre demande d'enlèvement qui va s'imprimer, le temps de régler ce problème.", vbOKOnly + vbOKOnly + vbExclamation, "Problème d'envoi de la demande d'enlèvement" 'imprime 1 copie à faxer manuellement ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:ÞfPrt, Collate:=True
'continue l'instruction si pas de plantage P: suite: '----- reaffectation de l'imprimante d'origine Application.ActivePrinter = DefPrt
On Error GoTo suite2: 'Insertion de l'enlèvement dans la base de données commune ChDir "P:EQUIPEMENT" Workbooks.Open Filename:="P:EQUIPEMENTbase pickup.xls"
Suite2: ' Va à la page de garde Sheets("pickup").Select Range("A1").Select
End Sub
Bonjour Denis
Le gestionnaire d'erreur étant déjà actif quand tu arrive à l'instruction
GoTo Suite2, celle ci est inopérante.
Il te faut donc désactiver le gestionnaire d'erreur avec une instruction
Resume avant de le réactiver.
Remplace donc ton instruction
GoTo Suite2
par
Resume Ici
Ici:
On Error GoTo Suite2
Cà devrait aller mieux.
OK?
@+
Yvan
"DENIS" <DENIS@discussions.microsoft.com> a écrit dans le message de news:
898575C3-B8EC-4F4E-8200-2E42902FE85C@microsoft.com...
Bonjour à tous,
Voici une partie de ma macro. Le premier GoTo fonctionne bien. Si le
répertoire sur le réseau est momentanement indisponible, l'instruction
passe
à "message:" sinon il passe par "suite:". Mon problème est qu'il bug pour
le
2ème GoTo.
Pourquoi après l'instruction de "suite", si le fichier n'est pas trouvé
sur
le répertoire P: en cours de maintenance, il bug en ne passant pas à
"suite2" pour terminer l'instruction ? Comprend pas.
'si le répertoire P: n'existe plus momentanement
On Error GoTo message:
'si le répertoire P: n'existe plus momentanement
message:
MsgBox "Problème dans lors de l'envoi du fichier d'enlèvement. Soit le
répertoire est en cours de maintenance, soit le fichier a été supprimé.
Merci
de faxer votre demande d'enlèvement qui va s'imprimer, le temps de régler
ce
problème.", vbOKOnly + vbOKOnly + vbExclamation, "Problème d'envoi de la
demande d'enlèvement"
'imprime 1 copie à faxer manuellement
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:ÞfPrt,
Collate:=True
'continue l'instruction si pas de plantage P:
suite:
'----- reaffectation de l'imprimante d'origine
Application.ActivePrinter = DefPrt
On Error GoTo suite2:
'Insertion de l'enlèvement dans la base de données commune
ChDir "P:EQUIPEMENT"
Workbooks.Open Filename:="P:EQUIPEMENTbase pickup.xls"
Suite2:
' Va à la page de garde
Sheets("pickup").Select
Range("A1").Select
Le gestionnaire d'erreur étant déjà actif quand tu arrive à l'instruction GoTo Suite2, celle ci est inopérante.
Il te faut donc désactiver le gestionnaire d'erreur avec une instruction Resume avant de le réactiver.
Remplace donc ton instruction
GoTo Suite2
par
Resume Ici Ici: On Error GoTo Suite2
Cà devrait aller mieux.
OK?
@+
Yvan
"DENIS" a écrit dans le message de news:
Bonjour à tous,
Voici une partie de ma macro. Le premier GoTo fonctionne bien. Si le répertoire sur le réseau est momentanement indisponible, l'instruction passe à "message:" sinon il passe par "suite:". Mon problème est qu'il bug pour le 2ème GoTo. Pourquoi après l'instruction de "suite", si le fichier n'est pas trouvé sur le répertoire P: en cours de maintenance, il bug en ne passant pas à "suite2" pour terminer l'instruction ? Comprend pas.
'si le répertoire P: n'existe plus momentanement On Error GoTo message:
'si le répertoire P: n'existe plus momentanement message: MsgBox "Problème dans lors de l'envoi du fichier d'enlèvement. Soit le répertoire est en cours de maintenance, soit le fichier a été supprimé. Merci de faxer votre demande d'enlèvement qui va s'imprimer, le temps de régler ce problème.", vbOKOnly + vbOKOnly + vbExclamation, "Problème d'envoi de la demande d'enlèvement" 'imprime 1 copie à faxer manuellement ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:ÞfPrt, Collate:=True
'continue l'instruction si pas de plantage P: suite: '----- reaffectation de l'imprimante d'origine Application.ActivePrinter = DefPrt
On Error GoTo suite2: 'Insertion de l'enlèvement dans la base de données commune ChDir "P:EQUIPEMENT" Workbooks.Open Filename:="P:EQUIPEMENTbase pickup.xls"
Suite2: ' Va à la page de garde Sheets("pickup").Select Range("A1").Select
End Sub
Yvan95
Re-Bonjour!
J'ai retrouvé avec un peu de retard ma source: www.excelabo.net/xl/erreurs.php
Tu verras. Tout est expliqué très clairement et en détail.
Yvan
Re-Bonjour!
J'ai retrouvé avec un peu de retard ma source:
www.excelabo.net/xl/erreurs.php
Tu verras. Tout est expliqué très clairement et en détail.
J'ai retrouvé avec un peu de retard ma source: www.excelabo.net/xl/erreurs.php
Tu verras. Tout est expliqué très clairement et en détail.
Yvan
DENIS
Bonjour Yvan,
j'ai bien rajouté : Resume Ici Ici: avant On Error GoTo Suite2, mais cela active "On error GoTo message:" C'est étrange car il donne le message d'erreur meme si l'autre fichier "Enlevement.xls" se trouve bien sur le répertoire p:
Denis
Bonjour Denis
Le gestionnaire d'erreur étant déjà actif quand tu arrive à l'instruction GoTo Suite2, celle ci est inopérante.
Il te faut donc désactiver le gestionnaire d'erreur avec une instruction Resume avant de le réactiver.
Remplace donc ton instruction
GoTo Suite2
par
Resume Ici Ici: On Error GoTo Suite2
Cà devrait aller mieux.
OK?
@+
Yvan
"DENIS" a écrit dans le message de news:
Bonjour à tous,
Voici une partie de ma macro. Le premier GoTo fonctionne bien. Si le répertoire sur le réseau est momentanement indisponible, l'instruction passe à "message:" sinon il passe par "suite:". Mon problème est qu'il bug pour le 2ème GoTo. Pourquoi après l'instruction de "suite", si le fichier n'est pas trouvé sur le répertoire P: en cours de maintenance, il bug en ne passant pas à "suite2" pour terminer l'instruction ? Comprend pas.
'si le répertoire P: n'existe plus momentanement On Error GoTo message:
'si le répertoire P: n'existe plus momentanement message: MsgBox "Problème dans lors de l'envoi du fichier d'enlèvement. Soit le répertoire est en cours de maintenance, soit le fichier a été supprimé. Merci de faxer votre demande d'enlèvement qui va s'imprimer, le temps de régler ce problème.", vbOKOnly + vbOKOnly + vbExclamation, "Problème d'envoi de la demande d'enlèvement" 'imprime 1 copie à faxer manuellement ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:ÞfPrt, Collate:=True
'continue l'instruction si pas de plantage P: suite: '----- reaffectation de l'imprimante d'origine Application.ActivePrinter = DefPrt
On Error GoTo suite2: 'Insertion de l'enlèvement dans la base de données commune ChDir "P:EQUIPEMENT" Workbooks.Open Filename:="P:EQUIPEMENTbase pickup.xls"
Suite2: ' Va à la page de garde Sheets("pickup").Select Range("A1").Select
End Sub
Bonjour Yvan,
j'ai bien rajouté :
Resume Ici
Ici:
avant On Error GoTo Suite2, mais cela active "On error GoTo message:"
C'est étrange car il donne le message d'erreur meme si l'autre fichier
"Enlevement.xls" se trouve bien sur le répertoire p:
Denis
Bonjour Denis
Le gestionnaire d'erreur étant déjà actif quand tu arrive à l'instruction
GoTo Suite2, celle ci est inopérante.
Il te faut donc désactiver le gestionnaire d'erreur avec une instruction
Resume avant de le réactiver.
Remplace donc ton instruction
GoTo Suite2
par
Resume Ici
Ici:
On Error GoTo Suite2
Cà devrait aller mieux.
OK?
@+
Yvan
"DENIS" <DENIS@discussions.microsoft.com> a écrit dans le message de news:
898575C3-B8EC-4F4E-8200-2E42902FE85C@microsoft.com...
Bonjour à tous,
Voici une partie de ma macro. Le premier GoTo fonctionne bien. Si le
répertoire sur le réseau est momentanement indisponible, l'instruction
passe
à "message:" sinon il passe par "suite:". Mon problème est qu'il bug pour
le
2ème GoTo.
Pourquoi après l'instruction de "suite", si le fichier n'est pas trouvé
sur
le répertoire P: en cours de maintenance, il bug en ne passant pas à
"suite2" pour terminer l'instruction ? Comprend pas.
'si le répertoire P: n'existe plus momentanement
On Error GoTo message:
'si le répertoire P: n'existe plus momentanement
message:
MsgBox "Problème dans lors de l'envoi du fichier d'enlèvement. Soit le
répertoire est en cours de maintenance, soit le fichier a été supprimé.
Merci
de faxer votre demande d'enlèvement qui va s'imprimer, le temps de régler
ce
problème.", vbOKOnly + vbOKOnly + vbExclamation, "Problème d'envoi de la
demande d'enlèvement"
'imprime 1 copie à faxer manuellement
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:ÞfPrt,
Collate:=True
'continue l'instruction si pas de plantage P:
suite:
'----- reaffectation de l'imprimante d'origine
Application.ActivePrinter = DefPrt
On Error GoTo suite2:
'Insertion de l'enlèvement dans la base de données commune
ChDir "P:EQUIPEMENT"
Workbooks.Open Filename:="P:EQUIPEMENTbase pickup.xls"
Suite2:
' Va à la page de garde
Sheets("pickup").Select
Range("A1").Select
j'ai bien rajouté : Resume Ici Ici: avant On Error GoTo Suite2, mais cela active "On error GoTo message:" C'est étrange car il donne le message d'erreur meme si l'autre fichier "Enlevement.xls" se trouve bien sur le répertoire p:
Denis
Bonjour Denis
Le gestionnaire d'erreur étant déjà actif quand tu arrive à l'instruction GoTo Suite2, celle ci est inopérante.
Il te faut donc désactiver le gestionnaire d'erreur avec une instruction Resume avant de le réactiver.
Remplace donc ton instruction
GoTo Suite2
par
Resume Ici Ici: On Error GoTo Suite2
Cà devrait aller mieux.
OK?
@+
Yvan
"DENIS" a écrit dans le message de news:
Bonjour à tous,
Voici une partie de ma macro. Le premier GoTo fonctionne bien. Si le répertoire sur le réseau est momentanement indisponible, l'instruction passe à "message:" sinon il passe par "suite:". Mon problème est qu'il bug pour le 2ème GoTo. Pourquoi après l'instruction de "suite", si le fichier n'est pas trouvé sur le répertoire P: en cours de maintenance, il bug en ne passant pas à "suite2" pour terminer l'instruction ? Comprend pas.
'si le répertoire P: n'existe plus momentanement On Error GoTo message:
'si le répertoire P: n'existe plus momentanement message: MsgBox "Problème dans lors de l'envoi du fichier d'enlèvement. Soit le répertoire est en cours de maintenance, soit le fichier a été supprimé. Merci de faxer votre demande d'enlèvement qui va s'imprimer, le temps de régler ce problème.", vbOKOnly + vbOKOnly + vbExclamation, "Problème d'envoi de la demande d'enlèvement" 'imprime 1 copie à faxer manuellement ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:ÞfPrt, Collate:=True
'continue l'instruction si pas de plantage P: suite: '----- reaffectation de l'imprimante d'origine Application.ActivePrinter = DefPrt
On Error GoTo suite2: 'Insertion de l'enlèvement dans la base de données commune ChDir "P:EQUIPEMENT" Workbooks.Open Filename:="P:EQUIPEMENTbase pickup.xls"
Suite2: ' Va à la page de garde Sheets("pickup").Select Range("A1").Select
End Sub
Yvan95
Salut Denis.
Bizarre que çà ne fonctionne pas chez toi!
Je me suis bricolé une petite procédure de test qui ressemble à ta routine, et çà marche chez moi nickel, comme décrit chez Excelabo.
Public Sub Essai() Dim t As Single
On Error GoTo Suite1 t = 0 t = 1 / t ' première division par zéro t = 2
Suite1: Resume Ici Ici: On Error GoTo Suite2 t = 0 t = 1 / t ' deuxième division par zéro GoTo Suite3
Suite2: t = 1 Exit Sub Suite3: t = 2 End Sub
Si je ne mets pas l'instruction resume ici, le programme plante à la deuxième division par zéro.
Si je mets resume ici et pas on error goto Suite2, il continue à renvoyer sur Suite1 à chaque erreur.
Si je mets goto suite2, après le label Ici: OU avant resume Ici, il renvoie sur le label Suite2 comme souhaité.
Par contre, si je remplace t=0 par t=1 pour que la première division ne soit pas en erreur, il éxecute deux fois la ligne resume ici !!!!
Cà me dépasse aussi un peu (et même beaucoup). Je continue à essayer de comprendre et le premier qui avance sur le sujet prévient l'autre.
A moins que quelqu'un de la communauté puisse nous éclairer!
@ +
Yvan
"DENIS" a écrit dans le message de news:
Bonjour Yvan,
j'ai bien rajouté : Resume Ici Ici: avant On Error GoTo Suite2, mais cela active "On error GoTo message:" C'est étrange car il donne le message d'erreur meme si l'autre fichier "Enlevement.xls" se trouve bien sur le répertoire p:
Denis
Salut Denis.
Bizarre que çà ne fonctionne pas chez toi!
Je me suis bricolé une petite procédure de test qui ressemble à ta routine,
et çà marche chez moi nickel, comme décrit chez Excelabo.
Public Sub Essai()
Dim t As Single
On Error GoTo Suite1
t = 0
t = 1 / t ' première division par zéro
t = 2
Suite1:
Resume Ici
Ici:
On Error GoTo Suite2
t = 0
t = 1 / t ' deuxième division par zéro
GoTo Suite3
Suite2:
t = 1
Exit Sub
Suite3:
t = 2
End Sub
Si je ne mets pas l'instruction resume ici, le programme plante à la
deuxième division par zéro.
Si je mets resume ici et pas on error goto Suite2, il continue à renvoyer
sur Suite1 à chaque erreur.
Si je mets goto suite2, après le label Ici: OU avant resume Ici, il renvoie
sur le label Suite2 comme souhaité.
Par contre, si je remplace t=0 par t=1 pour que la première division ne soit
pas en erreur, il éxecute deux fois la ligne resume ici !!!!
Cà me dépasse aussi un peu (et même beaucoup). Je continue à essayer de
comprendre et le premier qui avance sur le sujet prévient l'autre.
A moins que quelqu'un de la communauté puisse nous éclairer!
@ +
Yvan
"DENIS" <DENIS@discussions.microsoft.com> a écrit dans le message de news:
ECDAE4E4-D4D9-4855-875A-FB30580831CF@microsoft.com...
Bonjour Yvan,
j'ai bien rajouté :
Resume Ici
Ici:
avant On Error GoTo Suite2, mais cela active "On error GoTo message:"
C'est étrange car il donne le message d'erreur meme si l'autre fichier
"Enlevement.xls" se trouve bien sur le répertoire p:
Je me suis bricolé une petite procédure de test qui ressemble à ta routine, et çà marche chez moi nickel, comme décrit chez Excelabo.
Public Sub Essai() Dim t As Single
On Error GoTo Suite1 t = 0 t = 1 / t ' première division par zéro t = 2
Suite1: Resume Ici Ici: On Error GoTo Suite2 t = 0 t = 1 / t ' deuxième division par zéro GoTo Suite3
Suite2: t = 1 Exit Sub Suite3: t = 2 End Sub
Si je ne mets pas l'instruction resume ici, le programme plante à la deuxième division par zéro.
Si je mets resume ici et pas on error goto Suite2, il continue à renvoyer sur Suite1 à chaque erreur.
Si je mets goto suite2, après le label Ici: OU avant resume Ici, il renvoie sur le label Suite2 comme souhaité.
Par contre, si je remplace t=0 par t=1 pour que la première division ne soit pas en erreur, il éxecute deux fois la ligne resume ici !!!!
Cà me dépasse aussi un peu (et même beaucoup). Je continue à essayer de comprendre et le premier qui avance sur le sujet prévient l'autre.
A moins que quelqu'un de la communauté puisse nous éclairer!
@ +
Yvan
"DENIS" a écrit dans le message de news:
Bonjour Yvan,
j'ai bien rajouté : Resume Ici Ici: avant On Error GoTo Suite2, mais cela active "On error GoTo message:" C'est étrange car il donne le message d'erreur meme si l'autre fichier "Enlevement.xls" se trouve bien sur le répertoire p: