quitter un programme avec application.quit
Bonsoir à tous,
Lorsque je clique sur le bouton "quitter" de mon formulaire le programme effectue l'instruction "application.quit"
Il est alors proposé trois options "enregistrer", "ne pas enregistrer", "annuler".
Si j'ai des regrets et clique sur "annuler", je reste bien dans l'application mais je n'ai plus le formulaire à l'écran et ne peut donc plus rien faire.
Code:
1 2 3 4 5
| Sub CmdQuitter_click()
Set Pvt = Nothing
Application.Quit
If Not vbCancel Then ThisWorkbook.sortie ' dirigé vers la remise à "true" des options Excel et Windows.
End Sub |
Est-ce normal docteur ?
quitter une application avec quit
Bonjour Patrick,
voici le code que j'ai mis pour respecter les trois boutons proposés par l'instruction application.quit
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| Sub CmdQuitter_click() ' procédure pour quitter le programme
Style = vbYesNoCancel
reponse = MsgBox("Voulez-vous enregistrer les modifications!", Style)
If reponse = vbYes Then
With Application
Set Pvt = Nothing
ThisWorkbook.Save 'on peut eventuellement enregistrer
ThisWorkbook.sortie ' dirigé vers la remise à "true" des options excel et windows.
.Quit
End With
End If
If reponse = vbNo Then
With Application
Set Pvt = Nothing
ThisWorkbook.sortie ' dirigé vers la remise à "true" des options excel et windows.
.Quit
End With
End If
End Sub |
Cela donne le résultat attendu.
J'ai mis l'instruction ThisWorkbook.sortie avant "quit" en laissant au sein de cette procédure "display.alerts = false"
en effet, si je la mets après "quit", elle est ignorée si j'en crois le pas à pas (F8). Ce qui semble logique.
Cela ne semble pas être un problème, car si j'entre ensuite dans un ficher vierge et tape n'importe quoi, le clic sur la croix (X) renvoie le message classique malgré la sortie précédente avec "display.alerts = false".
Ne serait-il pas préférable de sortir avec "close" ?
Merci.
Paul