Pb gestion bt annuler dans Commondialog

cs_leseb Messages postés 9 Date d'inscription lundi 28 janvier 2002 Statut Membre Dernière intervention 27 janvier 2004 - 21 janv. 2004 à 11:07
Surfurax Messages postés 61 Date d'inscription mardi 26 août 2003 Statut Membre Dernière intervention 25 mai 2005 - 22 janv. 2004 à 10:27
Dans mon commondialog j'essaye de gérer l'annulation mais vb6 me dit bien que mon "showsave" à générer une erreur mais il n'effectue pas le "on error goto". Voici mon code

Sub Sauvegarde()

' La propriété CancelError de mon Commondialog a la valeur True.

Err.Clear
On Error GoTo Annuler

FrmMain.Diag.DialogTitle = "Sauvegarde de l'offre globale"
FrmMain.Diag.Filter = "Fichiers Excel" & "(*.xls)|*.xls"
FrmMain.Diag.Filename = "Récapitulatif Offre Globale.xls"

FrmMain.Diag.ShowSave

FrmMain.XlDoc.SaveAs (FrmMain.Diag.Filename)

Exit Sub

Annuler:

' L'utilisateur a sélectionné le bouton Annuler.
If Not FrmMain.XlDoc Is Nothing Then
FrmMain.XlDoc.Close False
End If
If Not FrmMain.XlApp Is Nothing Then
FrmMain.XlApp.Visible = True
FrmMain.XlApp.Quit
End If
MsgBox "Erreur interne"

End Sub

3 réponses

Surfurax Messages postés 61 Date d'inscription mardi 26 août 2003 Statut Membre Dernière intervention 25 mai 2005
21 janv. 2004 à 17:28
Salut,

Première chose, quand tu es dans ton code, clique sur le bouton droit de ta souris, vas sur "basculer", vérifies que tu es bien sur "Arrêt sur les erreurs non gérées".
Si c'est le cas mais qu'il ne fait quand même pas le goto, vire le "Exit Sub" (avant le "Annuler:") et mets plutot un "Goto Fin", puis rajoute un "Fin:" juste avant le "End Sub".
Si il bascule bien sur l'erreur, vérifie que c'est bien un cancel, pour cela rajoute le test suivant :

"If Err.Number = mscomdlg.cdlCancel Then"
[mailto:paulferrand@yahoo.fr Surfurax]
0
cs_leseb Messages postés 9 Date d'inscription lundi 28 janvier 2002 Statut Membre Dernière intervention 27 janvier 2004
22 janv. 2004 à 10:05
Oui c'était bien une histoire de "basculer", "Arrêt sur les erreurs non gérées". Je n'y aurais jamais pensé.
Merci
PS:Si tu as le temps faudrait m'expliquer la différence entre ces trois modes d'arrêt sur les erreurs.
0
Surfurax Messages postés 61 Date d'inscription mardi 26 août 2003 Statut Membre Dernière intervention 25 mai 2005
22 janv. 2004 à 10:27
Salut,

Dans le premier cas, quelle que soit l'erreur, gérée ou non, VB s'arrête.
Dans le deuxième cas, si l'erreur survient dans un module de classe, VB s'arrête.
Dans le dernier cas, VB ne s'arrête que si tu n'as pas de "on error goto" dans ta procédure.

Voilà, email moi si tu veux plus d'infos.

Ciao

[mailto:paulferrand@yahoo.fr Surfurax]
0
Rejoignez-nous