EXCEL - Ne pas fermer avec la croix

poussin38 Messages postés 29 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 25 janvier 2005 - 20 janv. 2005 à 17:05
cs_darunia Messages postés 354 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 24 mars 2011 - 22 janv. 2005 à 11:54
Bonjour,

Voici le code que l'on m'a donner pour ne pas fermer Excel avec la croix !
Cependant celui-ci ne fonctionne pas ! Quand je ferme avec la croix Excel se ferme tout simplement !

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode <> 1 Then Cancel = 1 ' si tu fermes avec la croix, excel ne se ferme pas
var = MsgBox("Quitter l'application ?", vbOKCancel) ' demande de confirmation
If var = vbOK Then ' confirmation de fermeture
ActiveWorkbook.Save ' sauvegarde du classeur
Application.Quit ' fermeture d'excel
End If
End Sub

je le mets dans thisWorkBook !

merci de votre aide.

Poussin 38

8 réponses

valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 3
20 janv. 2005 à 17:38
Salut,
ce code marche trés bien tu dois seulement le coller dans la bonne sub celle de ta UserForm et non pas dans thisworkbook
tu vas dans ta Userform1 tu cherches la sub QueryClose et tu colles ce code voilà c'est tout

If CloseMode <> 1 Then Cancel = 1 ' si tu fermes avec la croix, excel ne se ferme pas
var = MsgBox("Quitter l'application ?", vbOKCancel) ' demande de confirmation
If var = vbOK Then ' confirmation de fermeture
ActiveWorkbook.Save ' sauvegarde du classeur
Application.Quit ' fermeture d'excel
End If

____________________________________________________

Cordialement, Jean-Paul

Le Savoir n'a de valeur que s'il est partagé
0
mrdep1978 Messages postés 402 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 7 juin 2009 7
20 janv. 2005 à 17:50
Ce événement se déclenche sur la fermeture d'une Form VBA, pas sur la fermeture d'Excel.
A ma connaissance, à part l'événement BeforeClose de ThisWorkbook, il n'y a rien (dans le VBA Excel) pour récupérer la fermeture d'Excel.

J'espère pour toi que je me trompe ...
0
valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 3
20 janv. 2005 à 18:13
Oups, j'ai pas bien lu
oui en effet mon code ce n'est que pour des UserForm désolé !!!!

____________________________________________________

Cordialement, Jean-Paul

Le Savoir n'a de valeur que s'il est partagé
0
cs_darunia Messages postés 354 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 24 mars 2011 2
21 janv. 2005 à 13:25
Salut,

Trouve le hwnd de la fenetre d'excel et utilise l'API windows :

Private Declare Function GetSystemMenu Lib "user32" _
(ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function GetMenuItemCount Lib "user32" _
(ByVal hMenu As Long) As Long
Private Declare Function RemoveMenu Lib "user32" _
(ByVal hMenu As Long, ByVal nPosition As Long, _
ByVal wFlags As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" _
(ByVal hwnd As Long) As Long

Private Const MF_BYPOSITION = &H400&
Private Const MF_REMOVE = &H1000&
Private Sub DesactiveX()
Dim hMenu As Long
Dim nCount As Long
hMenu = GetSystemMenu(hwnd d'excel, 0)
nCount = GetMenuItemCount(hMenu)

Call RemoveMenu(hMenu, nCount - 1, MF_REMOVE Or MF_BYPOSITION)
Call RemoveMenu(hMenu, nCount - 2, MF_REMOVE Or MF_BYPOSITION)

DrawMenuBar hwnd d'excel
End Sub

[mailto:D@runia D@runia]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
poussin38 Messages postés 29 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 25 janvier 2005
21 janv. 2005 à 16:10
Salut,

juste une petite question ...
c quoi le hwnd ???

merci

Poussin 38
0
mrdep1978 Messages postés 402 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 7 juin 2009 7
21 janv. 2005 à 16:18
hWnd = Handle window
C'est une valeur (adresse d'un pointeur je pense) qui permet d'identifier une application, une fenêtre ... au sein du système d'exploitation (en l'occurence Windows)

Si il y a qqn qui trouve que ce que je raconte, c'est vraiment n'importe quoi, qu'il le dise .

De toute façon, je comprends rien à l'informatique
0
poussin38 Messages postés 29 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 25 janvier 2005
21 janv. 2005 à 16:30
Salut,

j'ai mis ton bout de code dans thisworkbook (général) car a aucun moment j'ai trouvé de hwnd ! et cela ne fonctionne pas !!!

tu l'a essayer ce code ? ça marche chez toi ?

Poussin 38
0
cs_darunia Messages postés 354 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 24 mars 2011 2
22 janv. 2005 à 11:54
Salut

Tu peux trouver le handle de la fenetre :

- Avec l'API FindWindow
- Avec l'API EnumWindows

Documente toi un peu sur ces fonctions et tu devrais trouver le handle de la fenetre d'excel

[mailto:D@runia D@runia]
0
Rejoignez-nous