Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

desactiver croix fermeture

12 réponses
Avatar
Mathieu
bonjour tout le monde,

je sais que l'on peut le faire pour un userform mais peut on desactiver la
croix de fermeture d'Excel

soit en la grisonnant soit lorque l'on clique dessus rien ne se passe...

merci a tous

Mathieu

10 réponses

1 2
Avatar
Daniel
Bonjour.
Regarde le classeur de Stephen Bullen :
http://cjoint.com/?eBmWRfWUBm
Cordialement.
Daniel
"Mathieu" a écrit dans le message de news:

bonjour tout le monde,

je sais que l'on peut le faire pour un userform mais peut on desactiver la
croix de fermeture d'Excel

soit en la grisonnant soit lorque l'on clique dessus rien ne se passe...

merci a tous

Mathieu



Avatar
MichDenis
Tu copies ceci dans le formulaire : API dans le haut du formulaire

'API
'--------------------------------
Private Declare Function FindWindowA& Lib "user32" _
(ByVal lpClassName$, ByVal lpWindowName$)
Private Declare Function GetSystemMenu& Lib "user32" _
(ByVal hWnd&, ByVal bRevert&)
Private Declare Function RemoveMenu& Lib "user32" _
(ByVal hMenu&, ByVal nPosition&, ByVal wFlags&)
Private Declare Function DrawMenuBar& Lib _
"user32" (ByVal hWnd&)
'--------------------------------

'Si tu actives les 2 dernières commandes, tu ne pourras pas déplacer ton
'formulaire lorsqu'il est ouvert :
'--------------------------------
Private Sub UserForm_Initialize()
Dim hWnd&, hSysMenu&
hWnd = FindWindowA(vbNullString, Me.Caption)
hSysMenu = GetSystemMenu(hWnd, 0)
RemoveMenu hSysMenu, &HF060, 0
'RemoveMenu hSysMenu, &HF010, 0
'DrawMenuBar hWnd
End Sub
'--------------------------------



"Mathieu" a écrit dans le message de news:

bonjour tout le monde,

je sais que l'on peut le faire pour un userform mais peut on desactiver la
croix de fermeture d'Excel

soit en la grisonnant soit lorque l'on clique dessus rien ne se passe...

merci a tous

Mathieu
Avatar
Mathieu
salut daniel

d'accord cela focntionne avec un userform, formulaire mais en ce qui
concerne Excel en lui meme, est - il possible de désactiver le "close
button" d'excel ??

merci

Mathieu
"Daniel" a écrit dans le message de news:

Bonjour.
Regarde le classeur de Stephen Bullen :
http://cjoint.com/?eBmWRfWUBm
Cordialement.
Daniel
"Mathieu" a écrit dans le message de news:

bonjour tout le monde,

je sais que l'on peut le faire pour un userform mais peut on desactiver
la croix de fermeture d'Excel

soit en la grisonnant soit lorque l'on clique dessus rien ne se passe...

merci a tous

Mathieu







Avatar
Daniel
OK, j'avais lu ttrop vite la question...
Daniel
"Mathieu" a écrit dans le message de news:
%23aJsd$
salut daniel

d'accord cela focntionne avec un userform, formulaire mais en ce qui
concerne Excel en lui meme, est - il possible de désactiver le "close
button" d'excel ??

merci

Mathieu
"Daniel" a écrit dans le message de news:

Bonjour.
Regarde le classeur de Stephen Bullen :
http://cjoint.com/?eBmWRfWUBm
Cordialement.
Daniel
"Mathieu" a écrit dans le message de news:

bonjour tout le monde,

je sais que l'on peut le faire pour un userform mais peut on desactiver
la croix de fermeture d'Excel

soit en la grisonnant soit lorque l'on clique dessus rien ne se passe...

merci a tous

Mathieu











Avatar
Mathieu
Salut MichDenis,

toi aussi ta solution permet de désactiver la croix mais seulement pour un
formulaire, userform mais pour Excel lui meme ???

;-)

Mathieu
"MichDenis" a écrit dans le message de news:
%
Tu copies ceci dans le formulaire : API dans le haut du formulaire

'API
'--------------------------------
Private Declare Function FindWindowA& Lib "user32" _
(ByVal lpClassName$, ByVal lpWindowName$)
Private Declare Function GetSystemMenu& Lib "user32" _
(ByVal hWnd&, ByVal bRevert&)
Private Declare Function RemoveMenu& Lib "user32" _
(ByVal hMenu&, ByVal nPosition&, ByVal wFlags&)
Private Declare Function DrawMenuBar& Lib _
"user32" (ByVal hWnd&)
'--------------------------------

'Si tu actives les 2 dernières commandes, tu ne pourras pas déplacer ton
'formulaire lorsqu'il est ouvert :
'--------------------------------
Private Sub UserForm_Initialize()
Dim hWnd&, hSysMenu&
hWnd = FindWindowA(vbNullString, Me.Caption)
hSysMenu = GetSystemMenu(hWnd, 0)
RemoveMenu hSysMenu, &HF060, 0
'RemoveMenu hSysMenu, &HF010, 0
'DrawMenuBar hWnd
End Sub
'--------------------------------



"Mathieu" a écrit dans le message de news:

bonjour tout le monde,

je sais que l'on peut le faire pour un userform mais peut on desactiver la
croix de fermeture d'Excel

soit en la grisonnant soit lorque l'on clique dessus rien ne se passe...

merci a tous

Mathieu





Avatar
MichDenis
Dans le haut d'un module Standard :


Private Declare Function EnableWindow Lib "user32" (ByVal hWnd As Long, _
ByVal fEnable As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) _
As Long
Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, _
ByVal bRevert As Long) As Long
Private Const SC_CLOSE As Long = &HF060

'-----------------------------------
Sub EnleverLeX()

Dim myhWnd As Long, hMenu As Long

'Supprime la petite croix
myhWnd = FindWindow("XLMAIN", Application.Caption)
hMenu = GetSystemMenu(myhWnd, 0)
DeleteMenu hMenu, SC_CLOSE, 0&
DrawMenuBar myhWnd

End Sub

'-----------------------------------
Private Sub RemettreLeX()

Dim myhWnd As Long, hMenu As Long

'Remet la petite croix
myhWnd = FindWindow("XLMAIN", Application.Caption)
hMenu = GetSystemMenu(myhWnd, 1)
DrawMenuBar myhWnd

End Sub
'-----------------------------------



"Mathieu" a écrit dans le message de news:

bonjour tout le monde,

je sais que l'on peut le faire pour un userform mais peut on desactiver la
croix de fermeture d'Excel

soit en la grisonnant soit lorque l'on clique dessus rien ne se passe...

merci a tous

Mathieu
Avatar
Mathieu
MichDenis

quand j'execute la macro EnleverLeX un message apparait : Erreur de
compilation : Sub ou Fonction non défini ???

As tu une idée d'où cela peut il venir ??

merci
Mathieu

"MichDenis" a écrit dans le message de news:

Dans le haut d'un module Standard :


Private Declare Function EnableWindow Lib "user32" (ByVal hWnd As Long, _
ByVal fEnable As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) _
As Long
Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, _
ByVal bRevert As Long) As Long
Private Const SC_CLOSE As Long = &HF060

'-----------------------------------
Sub EnleverLeX()

Dim myhWnd As Long, hMenu As Long

'Supprime la petite croix
myhWnd = FindWindow("XLMAIN", Application.Caption)
hMenu = GetSystemMenu(myhWnd, 0)
DeleteMenu hMenu, SC_CLOSE, 0&
DrawMenuBar myhWnd

End Sub

'-----------------------------------
Private Sub RemettreLeX()

Dim myhWnd As Long, hMenu As Long

'Remet la petite croix
myhWnd = FindWindow("XLMAIN", Application.Caption)
hMenu = GetSystemMenu(myhWnd, 1)
DrawMenuBar myhWnd

End Sub
'-----------------------------------



"Mathieu" a écrit dans le message de news:

bonjour tout le monde,

je sais que l'on peut le faire pour un userform mais peut on desactiver la
croix de fermeture d'Excel

soit en la grisonnant soit lorque l'on clique dessus rien ne se passe...

merci a tous

Mathieu





Avatar
MichDenis
Tu as raison, une erreur de copier-coller, tu n'avais pas tous les API


Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, _
ByVal nPosition As Long, ByVal wFlags As Long) As Long
Private Declare Function EnableWindow Lib "user32" (ByVal hWnd As Long, _
ByVal fEnable As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) _
As Long
Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, _
ByVal bRevert As Long) As Long
Private Const SC_CLOSE As Long = &HF060
'-----------------------------------
Sub EnleverLeX()

Dim myhWnd As Long, hMenu As Long

'Supprime la petite croix
myhWnd = FindWindow("XLMAIN", Application.Caption)
hMenu = GetSystemMenu(myhWnd, 0)
DeleteMenu hMenu, SC_CLOSE, 0&
DrawMenuBar myhWnd

End Sub

'-----------------------------------
Private Sub RemettreLeX()

Dim myhWnd As Long, hMenu As Long

'Remet la petite croix
myhWnd = FindWindow("XLMAIN", Application.Caption)
hMenu = GetSystemMenu(myhWnd, 1)
DrawMenuBar myhWnd

End Sub
'-----------------------------------





"Mathieu" a écrit dans le message de news:

MichDenis

quand j'execute la macro EnleverLeX un message apparait : Erreur de
compilation : Sub ou Fonction non défini ???

As tu une idée d'où cela peut il venir ??

merci
Mathieu

"MichDenis" a écrit dans le message de news:

Dans le haut d'un module Standard :


Private Declare Function EnableWindow Lib "user32" (ByVal hWnd As Long, _
ByVal fEnable As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) _
As Long
Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, _
ByVal bRevert As Long) As Long
Private Const SC_CLOSE As Long = &HF060

'-----------------------------------
Sub EnleverLeX()

Dim myhWnd As Long, hMenu As Long

'Supprime la petite croix
myhWnd = FindWindow("XLMAIN", Application.Caption)
hMenu = GetSystemMenu(myhWnd, 0)
DeleteMenu hMenu, SC_CLOSE, 0&
DrawMenuBar myhWnd

End Sub

'-----------------------------------
Private Sub RemettreLeX()

Dim myhWnd As Long, hMenu As Long

'Remet la petite croix
myhWnd = FindWindow("XLMAIN", Application.Caption)
hMenu = GetSystemMenu(myhWnd, 1)
DrawMenuBar myhWnd

End Sub
'-----------------------------------



"Mathieu" a écrit dans le message de news:

bonjour tout le monde,

je sais que l'on peut le faire pour un userform mais peut on desactiver la
croix de fermeture d'Excel

soit en la grisonnant soit lorque l'on clique dessus rien ne se passe...

merci a tous

Mathieu





Avatar
Mathieu
merci beaucoup MichDenis ça fonctionne nikel sous excel !!!!

et une chtite kestion pour la route :

si je veux l'appliquer a outlook par exmple y a moyen ???

jpense qu'il faudrait changer le "XLMAIN" de la ligne suivante :

myhWnd = FindWindow("XLMAIN", Application.Caption)

mais par quoi ??

une tite idée???

merci

mathieu

"MichDenis" a écrit dans le message de news:
Okh%
Tu as raison, une erreur de copier-coller, tu n'avais pas tous les API


Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, _
ByVal nPosition As Long, ByVal wFlags As Long) As Long
Private Declare Function EnableWindow Lib "user32" (ByVal hWnd As Long, _
ByVal fEnable As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) _
As Long
Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, _
ByVal bRevert As Long) As Long
Private Const SC_CLOSE As Long = &HF060
'-----------------------------------
Sub EnleverLeX()

Dim myhWnd As Long, hMenu As Long

'Supprime la petite croix
myhWnd = FindWindow("XLMAIN", Application.Caption)
hMenu = GetSystemMenu(myhWnd, 0)
DeleteMenu hMenu, SC_CLOSE, 0&
DrawMenuBar myhWnd

End Sub

'-----------------------------------
Private Sub RemettreLeX()

Dim myhWnd As Long, hMenu As Long

'Remet la petite croix
myhWnd = FindWindow("XLMAIN", Application.Caption)
hMenu = GetSystemMenu(myhWnd, 1)
DrawMenuBar myhWnd

End Sub
'-----------------------------------





"Mathieu" a écrit dans le message de news:

MichDenis

quand j'execute la macro EnleverLeX un message apparait : Erreur de
compilation : Sub ou Fonction non défini ???

As tu une idée d'où cela peut il venir ??

merci
Mathieu

"MichDenis" a écrit dans le message de news:

Dans le haut d'un module Standard :


Private Declare Function EnableWindow Lib "user32" (ByVal hWnd As Long, _
ByVal fEnable As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) _
As Long
Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long,
_
ByVal bRevert As Long) As Long
Private Const SC_CLOSE As Long = &HF060

'-----------------------------------
Sub EnleverLeX()

Dim myhWnd As Long, hMenu As Long

'Supprime la petite croix
myhWnd = FindWindow("XLMAIN", Application.Caption)
hMenu = GetSystemMenu(myhWnd, 0)
DeleteMenu hMenu, SC_CLOSE, 0&
DrawMenuBar myhWnd

End Sub

'-----------------------------------
Private Sub RemettreLeX()

Dim myhWnd As Long, hMenu As Long

'Remet la petite croix
myhWnd = FindWindow("XLMAIN", Application.Caption)
hMenu = GetSystemMenu(myhWnd, 1)
DrawMenuBar myhWnd

End Sub
'-----------------------------------



"Mathieu" a écrit dans le message de news:

bonjour tout le monde,

je sais que l'on peut le faire pour un userform mais peut on desactiver
la
croix de fermeture d'Excel

soit en la grisonnant soit lorque l'on clique dessus rien ne se passe...

merci a tous

Mathieu










Avatar
MichDenis
Si tu trouves par quoi le remplacer.... tu nous le dis ?


"Mathieu" a écrit dans le message de news:
%
merci beaucoup MichDenis ça fonctionne nikel sous excel !!!!

et une chtite kestion pour la route :

si je veux l'appliquer a outlook par exmple y a moyen ???

jpense qu'il faudrait changer le "XLMAIN" de la ligne suivante :

myhWnd = FindWindow("XLMAIN", Application.Caption)

mais par quoi ??

une tite idée???

merci

mathieu

"MichDenis" a écrit dans le message de news:
Okh%
Tu as raison, une erreur de copier-coller, tu n'avais pas tous les API


Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, _
ByVal nPosition As Long, ByVal wFlags As Long) As Long
Private Declare Function EnableWindow Lib "user32" (ByVal hWnd As Long, _
ByVal fEnable As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) _
As Long
Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, _
ByVal bRevert As Long) As Long
Private Const SC_CLOSE As Long = &HF060
'-----------------------------------
Sub EnleverLeX()

Dim myhWnd As Long, hMenu As Long

'Supprime la petite croix
myhWnd = FindWindow("XLMAIN", Application.Caption)
hMenu = GetSystemMenu(myhWnd, 0)
DeleteMenu hMenu, SC_CLOSE, 0&
DrawMenuBar myhWnd

End Sub

'-----------------------------------
Private Sub RemettreLeX()

Dim myhWnd As Long, hMenu As Long

'Remet la petite croix
myhWnd = FindWindow("XLMAIN", Application.Caption)
hMenu = GetSystemMenu(myhWnd, 1)
DrawMenuBar myhWnd

End Sub
'-----------------------------------





"Mathieu" a écrit dans le message de news:

MichDenis

quand j'execute la macro EnleverLeX un message apparait : Erreur de
compilation : Sub ou Fonction non défini ???

As tu une idée d'où cela peut il venir ??

merci
Mathieu

"MichDenis" a écrit dans le message de news:

Dans le haut d'un module Standard :


Private Declare Function EnableWindow Lib "user32" (ByVal hWnd As Long, _
ByVal fEnable As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) _
As Long
Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long,
_
ByVal bRevert As Long) As Long
Private Const SC_CLOSE As Long = &HF060

'-----------------------------------
Sub EnleverLeX()

Dim myhWnd As Long, hMenu As Long

'Supprime la petite croix
myhWnd = FindWindow("XLMAIN", Application.Caption)
hMenu = GetSystemMenu(myhWnd, 0)
DeleteMenu hMenu, SC_CLOSE, 0&
DrawMenuBar myhWnd

End Sub

'-----------------------------------
Private Sub RemettreLeX()

Dim myhWnd As Long, hMenu As Long

'Remet la petite croix
myhWnd = FindWindow("XLMAIN", Application.Caption)
hMenu = GetSystemMenu(myhWnd, 1)
DrawMenuBar myhWnd

End Sub
'-----------------------------------



"Mathieu" a écrit dans le message de news:

bonjour tout le monde,

je sais que l'on peut le faire pour un userform mais peut on desactiver
la
croix de fermeture d'Excel

soit en la grisonnant soit lorque l'on clique dessus rien ne se passe...

merci a tous

Mathieu










1 2