Macro pour désactiver le redimenssionement fenêtre

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

Bonjour,

Merci pour votre réponse, j'ai testé et cela semble fonctionner parfaitement.

Merci et Bonnes fêtes

Rechercher des sujets similaires à "macro desactiver redimenssionement fenetre"