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

Fermeture application Excel en code VB.

2 réponses
Avatar
Maxime Ross
Bonjour à tous!

J'ai un problème pour fermer une application Excel dans laquelle est ouvert
un classeur Excel. Mon problème est que je n'arrive pas à fermer
complètement l'application Excel en code Visual Basic avec l'instruction
Application.quit. Sa ne fonctionne pas du tout. La seule chose que je suis
capable de faire c'est un Workbooks("EF_PARAM.xls").Close ce qui ferme
seulement mon classeur Excel et non l'application au complet. Le réel
problème c'est que j'effectue du code après avoir fait le Application.Quit
et que mon application termine le code après la commande Application.Quit
avant de fermer l'application au complet. Le fait que j'appelle cette
commande dans une procédure comme ceci:

MessageErreur:
Dim Msg, Style, Title, Response 'pour les Message Box
Msg = "L'imprimante sélectionnée ne supporte pas le format de papier
11x17. Excel va fermer le classeur ouvert." ' Définit le message
'Style = vbYesNoCancel + vbExclamation ' Définit les boutons
Style = vbOKOnly + vbExclamation ' Définit les
boutons
Title = "Avertissement" ' Définit le titre
Response = MsgBox(Msg, Style, Title)
Application.DisplayAlerts = False 'ne pas demander de confirmation
'Workbooks("EF_PARAM.xls").Close
'Application.Quit
On Error Resume Next

// Retour vers d'autres modules par la suite... Donc le code ne se termine
pas vraiment ici...



Est-ce que c'est correct de faire cela??? Je crois que c'est à cause de
l'endroit ou j'utilise cette commande qui fait que sa ne fonctionne pas.
Aidez moi SVP à arriver à fermer Excel au complet dans le code VB sans
exécuter le code situé après la commande Application.Quit.

2 réponses

Avatar
Ange Ounis
L'instruction End force la fin de l'exécution du code. Pour fermer le classeur
et ensuite Excel, 2 options

1- le classeur doit être enregistré avant qu'Excel soit fermé :

Sub essai1()
Workbooks("EF_PARAM.xls").Save
Application.Quit
End
MsgBox "coucou"
End Sub

2- Le classeur, même modifié, ne doit pas être enregistré :

Sub essai2()
Workbooks("EF_PARAM.xls").Saved=True
Application.Quit
End
MsgBox "coucou"
End Sub

----------
Ange Ounis
----------

Bonjour à tous!

J'ai un problème pour fermer une application Excel dans laquelle est ouvert
un classeur Excel. Mon problème est que je n'arrive pas à fermer
complètement l'application Excel en code Visual Basic avec l'instruction
Application.quit. Sa ne fonctionne pas du tout. La seule chose que je suis
capable de faire c'est un Workbooks("EF_PARAM.xls").Close ce qui ferme
seulement mon classeur Excel et non l'application au complet. Le réel
problème c'est que j'effectue du code après avoir fait le Application.Quit
et que mon application termine le code après la commande Application.Quit
avant de fermer l'application au complet. Le fait que j'appelle cette
commande dans une procédure comme ceci:

MessageErreur:
Dim Msg, Style, Title, Response 'pour les Message Box
Msg = "L'imprimante sélectionnée ne supporte pas le format de papier
11x17. Excel va fermer le classeur ouvert." ' Définit le message
'Style = vbYesNoCancel + vbExclamation ' Définit les boutons
Style = vbOKOnly + vbExclamation ' Définit les
boutons
Title = "Avertissement" ' Définit le titre
Response = MsgBox(Msg, Style, Title)
Application.DisplayAlerts = False 'ne pas demander de confirmation
'Workbooks("EF_PARAM.xls").Close
'Application.Quit
On Error Resume Next

// Retour vers d'autres modules par la suite... Donc le code ne se termine
pas vraiment ici...



Est-ce que c'est correct de faire cela??? Je crois que c'est à cause de
l'endroit ou j'utilise cette commande qui fait que sa ne fonctionne pas.
Aidez moi SVP à arriver à fermer Excel au complet dans le code VB sans
exécuter le code situé après la commande Application.Quit.




Avatar
mouspi
Bonsoir,
En enlevant l'apostrophe (commentaire) de la ligne
'Workbooks("EF_PARAM.xls").Close
et en mettant le code suivant (sans apostrophe non plus) dans ThisWorkBook

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.Quit
End Sub


la routine fonctionne très bien, et n'exécute pas les instructions
suivantes.

Test effectué sous Excel 2003.

Bonne soirée

Mouspi



"Maxime Ross" a écrit dans le message de news:

Bonjour à tous!

J'ai un problème pour fermer une application Excel dans laquelle est
ouvert un classeur Excel. Mon problème est que je n'arrive pas à fermer
complètement l'application Excel en code Visual Basic avec l'instruction
Application.quit. Sa ne fonctionne pas du tout. La seule chose que je suis
capable de faire c'est un Workbooks("EF_PARAM.xls").Close ce qui ferme
seulement mon classeur Excel et non l'application au complet. Le réel
problème c'est que j'effectue du code après avoir fait le Application.Quit
et que mon application termine le code après la commande Application.Quit
avant de fermer l'application au complet. Le fait que j'appelle cette
commande dans une procédure comme ceci:

MessageErreur:
Dim Msg, Style, Title, Response 'pour les Message Box
Msg = "L'imprimante sélectionnée ne supporte pas le format de papier
11x17. Excel va fermer le classeur ouvert." ' Définit le message
'Style = vbYesNoCancel + vbExclamation ' Définit les boutons
Style = vbOKOnly + vbExclamation ' Définit les
boutons
Title = "Avertissement" ' Définit le titre
Response = MsgBox(Msg, Style, Title)
Application.DisplayAlerts = False 'ne pas demander de confirmation
'Workbooks("EF_PARAM.xls").Close
'Application.Quit
On Error Resume Next

// Retour vers d'autres modules par la suite... Donc le code ne se termine
pas vraiment ici...



Est-ce que c'est correct de faire cela??? Je crois que c'est à cause de
l'endroit ou j'utilise cette commande qui fait que sa ne fonctionne pas.
Aidez moi SVP à arriver à fermer Excel au complet dans le code VB sans
exécuter le code situé après la commande Application.Quit.