Macro pour désactiver le redimenssionement fenêtre
a
Bonsoir,
J'ai trouvé un code pour empêcher le redimensionnement des fenêtre.
Le petit souci, c'est que j'utilise Excel 2010, et je crois que ce code date de l'année 2005.
Donc, je n'arrive pas à le faire fonctionner, mais apparemment, il devait marcher sur une version antérieur 2003 ou 2007
Public Sub DisableSystemMenu()
Dim lHandle As Long, lCount As Long
On Error Resume Next
lHandle = FindWindowA(vbNullString, Application.Caption)
If lHandle <> 0 Then
'supprime la commande Agrandissement du menu système
'et la commande Agrandir de la fenêtre
DeleteMenu GetSystemMenu(lHandle, False), 4, &H400
'supprime la commande Réduction du menu système
'et désactive la commande Réduire de la fenêtre
DeleteMenu GetSystemMenu(lHandle, False), 3, &H400
'désactive la commande Déplacement du menu système
DeleteMenu GetSystemMenu(lHandle, False), 2, &H400
'supprime la commande Déplacement du menu système
'et désactive la commande Dimension
DeleteMenu GetSystemMenu(lHandle, False), 1, &H400
'supprime la commande Restauration du menu système
'et désactive la commande Restaurer de la fenêtre
DeleteMenu GetSystemMenu(lHandle, False), 0, &H400
End If
End Sub
Voilà, et pour remettre le tout dans l'ordre:
Public Sub EnableSystemMenu()
Dim lHandle As Long
On Error Resume Next
lHandle = FindWindowA(vbNullString, Application.Caption)
GetSystemMenu lHandle, True
End Sub
Mais en ce qui me concerne, avec Excel 2010, cela ne fonctionne pas
Bonjour,
Ce n'est pas cela que tu recherches?
Pas testé.
Cdlt.
Option Explicit
'developpez.net/forums/d1401109/logiciels/microsoft-office/excel/macros-vba-excel/masquer-barre-titre/
'Désactiver le menu système d'Excel et les commandes système
'de la fenêtre d'Excel (dont la croix de fermeture)
'permet de choisir précisément ce sur quoi on veut agir...
'(en fin de module une procédure pour tout rétablir)
Private Const MF_BYPOSITION As Long = &H400
Private Const mlNUM_SYS_MENU_ITEMS As Long = 9
Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, ByVal bRevert As Long) 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 FindWindowA Lib "user32" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
'Vasant Nanavati, Andrew Baker (mpep), fs
Public Sub DisableSystemMenu()
Dim lHandle As Long, lCount As Long
On Error Resume Next
lHandle = FindWindowA(vbNullString, Application.Caption)
If lHandle <> 0 Then
'désactive la croix de fermeture d'Excel
'et la commande Fermeture du menu système
DeleteMenu GetSystemMenu(lHandle, False), 6, &H400
'supprime le trait de séparation du menu système avant Fermeture
DeleteMenu GetSystemMenu(lHandle, False), 5, &H400
'supprime la commande Agrandissement du menu système
'et la commande Agrandir de la fenêtre
DeleteMenu GetSystemMenu(lHandle, False), 4, &H400
'supprime la commande Réduction du menu système
'et désactive la commande Réduire de la fenêtre
DeleteMenu GetSystemMenu(lHandle, False), 3, &H400
'désactive la commande Déplacement du menu système
DeleteMenu GetSystemMenu(lHandle, False), 2, &H400
'supprime la commande Déplacement du menu système
'et désactive la commande Dimension
DeleteMenu GetSystemMenu(lHandle, False), 1, &H400
'supprime la commande Restauration du menu système
'et désactive la commande Restaurer de la fenêtre
DeleteMenu GetSystemMenu(lHandle, False), 0, &H400
End If
End Sub
'rétablit le menu sytème et les commandes de fenêtre (Réduire, Agrandir, Fermer)
Public Sub EnableSystemMenu()
Dim lHandle As Long
On Error Resume Next
lHandle = FindWindowA(vbNullString, Application.Caption)
GetSystemMenu lHandle, True
End Sub
a
Bonjour,
Merci pour votre réponse, j'ai testé et cela semble fonctionner parfaitement.
Merci et Bonnes fêtes