cs_Achi
Messages postés128Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention17 mai 2008
-
15 mars 2006 à 15:08
cs_Achi
Messages postés128Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention17 mai 2008
-
16 mars 2006 à 20:31
bonjour, bon bah apparement ca doit saouler ces question ac desactiver X!!!
le problème c que j'en ai besoin... alors effectivement j'ai cherché sur le forum et on m'a aidé a trouver le code, cool!!
le voilà:
'*****************************************
' Dans la partie déclaration du formulaire
'*****************************************
Public Const MF_BYPOSITION = &H400&
'Cette fonction API sert à prendre le menu qui apparaît lors du clic en haut à gauche du form (sous-menus "Restaurer", "Déplacer", "Réduire", "Fermer", ...)
Public Declare Function GetSystemMenu _
Lib "user32" _
(ByVal hwnd As Long, _
ByVal bRevert As Long) As Long
'Cette fonction API sert à enlever un de ces sous-menus
Public Declare Function RemoveMenu _
Lib "user32" (ByVal hMenu As Long, _
ByVal nPosition As Long, _
ByVal wFlags As Long) As Long
'Cette fonction API sert à connaître le nombre de sous-menus dans ce même menu
Public Declare Function GetMenuItemCount _
Lib "user32" _
(ByVal hMenu As Long) As Long
'*******************************************
' Dans la partie programmation du formulaire
'*******************************************
Public Sub DesactiverX(f_hwnd As Long)
Dim lSysMenu As Long
Dim lItemCount As Long
Dim lRet As Long
'Prend l'ID du menu
lSysMenu = GetSystemMenu(f_hwnd, False)
'Prend le nombre d'objet (sous-menus) du menu
lItemCount = GetMenuItemCount(lSysMenu)
cs_Willi
Messages postés2375Date d'inscriptionjeudi 12 juillet 2001StatutModérateurDernière intervention15 décembre 201821 15 mars 2006 à 16:20
PhilocheMan non non sa ne marche pas du tout, en tout cas sous Excel 2003.
Achi, il faudrait dans un premier temps faire un FindWindow pour avoir le handle de ta fenêtre Excel.
Arf je ne peux pas de donner un exemple maintenant.
kalobit
Messages postés169Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention 7 avril 20082 16 mars 2006 à 10:36
utilise l'événement form_QuerryClose pour intercepter le click sur X et annuler la fermeture.
Pour activer ou désactiver, utilise une variable module qui sera modifiée par un bouton :
Ca donne ça :
Dim annuler As Boolean
Private Sub CommandButton1_Click()
annuler = Not annuler
End Sub
Private Sub UserForm_Initialize()
annuler = True
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)If CloseMode vbFormControlMenu And annuler True Then
Cancel = True
End If
End Sub
cs_Achi
Messages postés128Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention17 mai 2008 16 mars 2006 à 20:31
bonsoir,
je ne désire pas passer par un bouton Kalobit!!
je ne comprends pas, le code que j'ai mis plus haut sur mon post devrait fonctionner!!
Willi m'a parlé de FindWindow et de Handle, j'ai recherché sur les forums mais j'arrive pas à trouver la signification de Handle (je pense comprendre que c la reconnaissance de la fênetre d'une application) et surtout je ne vois comment je l'utiliser ds mon code!!