poussin38
Messages postés29Date d'inscriptionmardi 11 janvier 2005StatutMembreDernière intervention25 janvier 2005
-
20 janv. 2005 à 17:05
cs_darunia
Messages postés354Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention24 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
valtrase
Messages postés937Date d'inscriptionlundi 19 janvier 2004StatutMembreDernière intervention 9 mai 20224 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
mrdep1978
Messages postés402Date d'inscriptionjeudi 25 novembre 2004StatutMembreDernière intervention 7 juin 20097 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.
cs_darunia
Messages postés354Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention24 mars 20112 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]
Vous n’avez pas trouvé la réponse que vous recherchez ?
mrdep1978
Messages postés402Date d'inscriptionjeudi 25 novembre 2004StatutMembreDernière intervention 7 juin 20097 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