Fermer Excel par macro+inhiber la croix de fermeture
3 réponses
sergio
Bonjour =E0 tous,
2 petites questions:
sur un classeur je voudrais interdire =E0 l'utilisateur de=20
sortir sauvagement en utilisant la croix, comment puis-je=20
la rendre inop=E9rante voir la fair disparaitre completement=20
(cette sortie sauvage fausse tout car on n'ex=E9cute pas=20
certaines macros obligatoires).
La 2 eme question:
L'utilisateur devra sortir en cliquant sur un bouton=20
quitter qui sauvegarde le classeur en y effectuant=20
certains calculs par contre une fois le fichier ferm=E9=20
Excel reste toujours ouvert ce qui n'est pas tres joli.
"sergio" a écrit dans le message de news:6d0f01c3e698$636fe1c0$ Bonjour à tous, 2 petites questions: sur un classeur je voudrais interdire à l'utilisateur de sortir sauvagement en utilisant la croix, comment puis-je la rendre inopérante voir la fair disparaitre completement (cette sortie sauvage fausse tout car on n'exécute pas certaines macros obligatoires).
La 2 eme question: L'utilisateur devra sortir en cliquant sur un bouton quitter qui sauvegarde le classeur en y effectuant certains calculs par contre une fois le fichier fermé Excel reste toujours ouvert ce qui n'est pas tres joli.
Merci d'avance @+ Sergio
Salut sergio,
Pour les deux questions, à placer dans le ThsiWorkbook :
Dim Fermer As Boolean
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Not Fermer Then
Cancel = True
End If
End Sub
Sub Quitter()
Fermer = True
Application.Quit
End Sub
Et dans le module de la feuille contenant le bouton :
Private Sub CommandButton1_Click()
ThisWorkbook.Quitter
End Sub
"sergio" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:6d0f01c3e698$636fe1c0$a401280a@phx.gbl...
Bonjour à tous,
2 petites questions:
sur un classeur je voudrais interdire à l'utilisateur de
sortir sauvagement en utilisant la croix, comment puis-je
la rendre inopérante voir la fair disparaitre completement
(cette sortie sauvage fausse tout car on n'exécute pas
certaines macros obligatoires).
La 2 eme question:
L'utilisateur devra sortir en cliquant sur un bouton
quitter qui sauvegarde le classeur en y effectuant
certains calculs par contre une fois le fichier fermé
Excel reste toujours ouvert ce qui n'est pas tres joli.
"sergio" a écrit dans le message de news:6d0f01c3e698$636fe1c0$ Bonjour à tous, 2 petites questions: sur un classeur je voudrais interdire à l'utilisateur de sortir sauvagement en utilisant la croix, comment puis-je la rendre inopérante voir la fair disparaitre completement (cette sortie sauvage fausse tout car on n'exécute pas certaines macros obligatoires).
La 2 eme question: L'utilisateur devra sortir en cliquant sur un bouton quitter qui sauvegarde le classeur en y effectuant certains calculs par contre une fois le fichier fermé Excel reste toujours ouvert ce qui n'est pas tres joli.
"sergio" a écrit dans le message de news:6d0f01c3e698$636fe1c0$ Bonjour à tous, 2 petites questions: sur un classeur je voudrais interdire à l'utilisateur de sortir sauvagement en utilisant la croix, comment puis-je la rendre inopérante voir la fair disparaitre completement (cette sortie sauvage fausse tout car on n'exécute pas certaines macros obligatoires).
La 2 eme question: L'utilisateur devra sortir en cliquant sur un bouton quitter qui sauvegarde le classeur en y effectuant certains calculs par contre une fois le fichier fermé Excel reste toujours ouvert ce qui n'est pas tres joli.
"sergio" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:6d0f01c3e698$636fe1c0$a401280a@phx.gbl...
Bonjour à tous,
2 petites questions:
sur un classeur je voudrais interdire à l'utilisateur de
sortir sauvagement en utilisant la croix, comment puis-je
la rendre inopérante voir la fair disparaitre completement
(cette sortie sauvage fausse tout car on n'exécute pas
certaines macros obligatoires).
La 2 eme question:
L'utilisateur devra sortir en cliquant sur un bouton
quitter qui sauvegarde le classeur en y effectuant
certains calculs par contre une fois le fichier fermé
Excel reste toujours ouvert ce qui n'est pas tres joli.
"sergio" a écrit dans le message de news:6d0f01c3e698$636fe1c0$ Bonjour à tous, 2 petites questions: sur un classeur je voudrais interdire à l'utilisateur de sortir sauvagement en utilisant la croix, comment puis-je la rendre inopérante voir la fair disparaitre completement (cette sortie sauvage fausse tout car on n'exécute pas certaines macros obligatoires).
La 2 eme question: L'utilisateur devra sortir en cliquant sur un bouton quitter qui sauvegarde le classeur en y effectuant certains calculs par contre une fois le fichier fermé Excel reste toujours ouvert ce qui n'est pas tres joli.
Merci d'avance @+ Sergio
ChrisV
Bonjour Sergio,
Pour répondre aux 2 questions... avec toutefois une petite différence en ce qui concerne la fermeture du classeur: s'il est le seul ouvert dans Excel, alors sauvegarde puis fermeture du classeur et d'Excel; si le classeur n'est pas le seul ouvert, enregistrement et fermeture du classeur mais Excel reste ouvert pour laisser les autres documents disponibles...
Dans un module du classeur:
Public Const nomBO = "Macro/sauv/fermeture" Public bye As Boolean
Sub CreateBO() Dim bo As CommandBar On Error Resume Next DeleteBO Set bo = Application.CommandBars.Add(nomBO) With bo.Controls.Add(msoControlButton) .Caption = "Quitter..." .FaceId = 2151 .OnAction = "quitE" End With bo.Visible = True End Sub
Sub DeleteBO() On Error Resume Next Application.CommandBars(nomBO).Delete End Sub
Private Sub quitE() DeleteBO If Workbooks.Count > 1 Then bye = True fermeture Application.DisplayAlerts = False ActiveWorkbook.Close SaveChanges:=True Else bye = True fermeture With Application .DisplayAlerts = False ActiveWorkbook.Save .Quit End With End If End Sub
Private Sub fermeture() Application.ScreenUpdating = False With Application .OnKey "^{w}" .OnKey "^{s}" End With ' ici le du code qui effectue certains calculs Application.ScreenUpdating = True End Sub
Dans la feuille de code de ThisWorkbook:
Private Sub Workbook_Open() With Application .ScreenUpdating = False .OnKey "^{w}", "" .OnKey "^{s}", "" End With Application.ScreenUpdating = True CreateBO End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean) Cancel = Not bye End Sub
ChrisV
"sergio" a écrit dans le message de news: 6d0f01c3e698$636fe1c0$ Bonjour à tous, 2 petites questions: sur un classeur je voudrais interdire à l'utilisateur de sortir sauvagement en utilisant la croix, comment puis-je la rendre inopérante voir la fair disparaitre completement (cette sortie sauvage fausse tout car on n'exécute pas certaines macros obligatoires).
La 2 eme question: L'utilisateur devra sortir en cliquant sur un bouton quitter qui sauvegarde le classeur en y effectuant certains calculs par contre une fois le fichier fermé Excel reste toujours ouvert ce qui n'est pas tres joli.
Merci d'avance @+ Sergio
Bonjour Sergio,
Pour répondre aux 2 questions... avec toutefois une petite différence en ce
qui concerne la fermeture du classeur:
s'il est le seul ouvert dans Excel, alors sauvegarde puis fermeture du
classeur et d'Excel;
si le classeur n'est pas le seul ouvert, enregistrement et fermeture du
classeur mais Excel reste ouvert pour laisser les autres documents
disponibles...
Dans un module du classeur:
Public Const nomBO = "Macro/sauv/fermeture"
Public bye As Boolean
Sub CreateBO()
Dim bo As CommandBar
On Error Resume Next
DeleteBO
Set bo = Application.CommandBars.Add(nomBO)
With bo.Controls.Add(msoControlButton)
.Caption = "Quitter..."
.FaceId = 2151
.OnAction = "quitE"
End With
bo.Visible = True
End Sub
Sub DeleteBO()
On Error Resume Next
Application.CommandBars(nomBO).Delete
End Sub
Private Sub quitE()
DeleteBO
If Workbooks.Count > 1 Then
bye = True
fermeture
Application.DisplayAlerts = False
ActiveWorkbook.Close SaveChanges:=True
Else
bye = True
fermeture
With Application
.DisplayAlerts = False
ActiveWorkbook.Save
.Quit
End With
End If
End Sub
Private Sub fermeture()
Application.ScreenUpdating = False
With Application
.OnKey "^{w}"
.OnKey "^{s}"
End With
' ici le du code qui effectue certains calculs
Application.ScreenUpdating = True
End Sub
Dans la feuille de code de ThisWorkbook:
Private Sub Workbook_Open()
With Application
.ScreenUpdating = False
.OnKey "^{w}", ""
.OnKey "^{s}", ""
End With
Application.ScreenUpdating = True
CreateBO
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Cancel = Not bye
End Sub
ChrisV
"sergio" <anonymous@discussions.microsoft.com> a écrit dans le message de
news: 6d0f01c3e698$636fe1c0$a401280a@phx.gbl...
Bonjour à tous,
2 petites questions:
sur un classeur je voudrais interdire à l'utilisateur de
sortir sauvagement en utilisant la croix, comment puis-je
la rendre inopérante voir la fair disparaitre completement
(cette sortie sauvage fausse tout car on n'exécute pas
certaines macros obligatoires).
La 2 eme question:
L'utilisateur devra sortir en cliquant sur un bouton
quitter qui sauvegarde le classeur en y effectuant
certains calculs par contre une fois le fichier fermé
Excel reste toujours ouvert ce qui n'est pas tres joli.
Pour répondre aux 2 questions... avec toutefois une petite différence en ce qui concerne la fermeture du classeur: s'il est le seul ouvert dans Excel, alors sauvegarde puis fermeture du classeur et d'Excel; si le classeur n'est pas le seul ouvert, enregistrement et fermeture du classeur mais Excel reste ouvert pour laisser les autres documents disponibles...
Dans un module du classeur:
Public Const nomBO = "Macro/sauv/fermeture" Public bye As Boolean
Sub CreateBO() Dim bo As CommandBar On Error Resume Next DeleteBO Set bo = Application.CommandBars.Add(nomBO) With bo.Controls.Add(msoControlButton) .Caption = "Quitter..." .FaceId = 2151 .OnAction = "quitE" End With bo.Visible = True End Sub
Sub DeleteBO() On Error Resume Next Application.CommandBars(nomBO).Delete End Sub
Private Sub quitE() DeleteBO If Workbooks.Count > 1 Then bye = True fermeture Application.DisplayAlerts = False ActiveWorkbook.Close SaveChanges:=True Else bye = True fermeture With Application .DisplayAlerts = False ActiveWorkbook.Save .Quit End With End If End Sub
Private Sub fermeture() Application.ScreenUpdating = False With Application .OnKey "^{w}" .OnKey "^{s}" End With ' ici le du code qui effectue certains calculs Application.ScreenUpdating = True End Sub
Dans la feuille de code de ThisWorkbook:
Private Sub Workbook_Open() With Application .ScreenUpdating = False .OnKey "^{w}", "" .OnKey "^{s}", "" End With Application.ScreenUpdating = True CreateBO End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean) Cancel = Not bye End Sub
ChrisV
"sergio" a écrit dans le message de news: 6d0f01c3e698$636fe1c0$ Bonjour à tous, 2 petites questions: sur un classeur je voudrais interdire à l'utilisateur de sortir sauvagement en utilisant la croix, comment puis-je la rendre inopérante voir la fair disparaitre completement (cette sortie sauvage fausse tout car on n'exécute pas certaines macros obligatoires).
La 2 eme question: L'utilisateur devra sortir en cliquant sur un bouton quitter qui sauvegarde le classeur en y effectuant certains calculs par contre une fois le fichier fermé Excel reste toujours ouvert ce qui n'est pas tres joli.