Comment désactiver les trois boutons d'XL

Leskwal

XLDnaute Occasionnel
Bonsoir à tous

Bon voilà... j'ai développé une petite application. Un certain nombre de contrainte m'oblige à désactiver les 3 boutons en haut à droite d'Excel.

Pour ce qui est de la CROIX, j'ai trouvé ce que je cherchais sur le Forum (Y'a pas à dire, ce Forum est TOP ), mais pour ce qui est des 2 autres boutons réduction et passage au niveau inférieur ... NADA...Rien... 'boutons que je veux rendre inactif.


Une petite aide serait la bienvenue

Très cordialement à tous et à ceux qui m'ont déjà filé un sacré coup de main .

Pascal
 
C

Compte Supprimé 979

Guest
Re : Comment désactiver les trois boutons d'XL

Bonsoir Leskwal,

Pourquoi ne pas utiliser le classeur en plein écran
Et pour tout redimensionnement, ré-afficher la fenêtre à son max
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Application.DisplayFullScreen = False
End Sub
Private Sub Workbook_Open()
  Application.DisplayFullScreen = True
End Sub
Private Sub Workbook_WindowResize(ByVal Wn As Window)
  ActiveWindow.WindowState = xlMaximized
End Sub

A+
 

Leskwal

XLDnaute Occasionnel
Re : Comment désactiver les trois boutons d'XL

Bonjour BrunoM45

Je te remercie pour ta réponse mais ce code agit sur le classeur mais pas sur la fenêtre EXCEL.

Voilà ce que j'aimerai obtenir en me basant sur le code fonctionnel pour la CROIX, pour les 2 autres.

Code:
 ' dans un Module

Option Explicit
'Declaration des variables
Public Autoriser_Fermeture As Boolean 


Private Sub Workbook_Activate()

Autoriser_Fermeture = False 'variable de test qui va permettre de bloquer la sortie par la croix rouge
Application.WindowState = xlMaximized

et enfin pour bloquer la croix

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)

        If Autoriser_Fermeture = False Then
            
           Cancel = True
    
            MsgBox "Quitter l'application en Sauvegardant dans un premier temps et en utilisant le bouton QUITTER de la feuille avec le Cadenas ", , "Sortie Interdite"
    
        End If
    
End Sub

Voilà et ce code marche impeccablement.

La CROIX correspond apparemment à la fonction CANCEL. J'aimerais connaître le nom des fonctions, si elles existent pour Réduire (Reduce ? ne fonctionne pas) et pareil pour Niveau Inférieur.


J'espère avoir été clair.

Cordialement

Pascal
 
C

Compte Supprimé 979

Guest
Re : Comment désactiver les trois boutons d'XL

Re,

Je te remercie pour ta réponse mais ce code agit sur le classeur mais pas sur la fenêtre EXCEL
Je ne te comprends pas :confused:

Que crois tu faire avec le code
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  If Autoriser_Fermeture = False Then          
    Cancel = True
    MsgBox "Quitter l'application en Sauvegardant dans un premier temps et en utilisant le bouton QUITTER de la feuille avec le Cadenas ", , "Sortie Interdite" 
  End If    
End Sub
Tu es sur l'évènement avant fermeture du CLASSEUR et non de la "fenêtre"

Après il faut utiliser les API window pour pouvoir gérer directement le fenêtre de l'application, je n'ai pas de code sous la main

Tu devrais pouvoir trouver ça par une recherche sur google ;)

A+
 

Cousinhub

XLDnaute Barbatruc
Re : Comment désactiver les trois boutons d'XL

Bonjour,

Bonjour, Bruno :):)

Bruno, Laurent Longre.....(encore une fois... ;))

Code:
'Dans le module ThisWorkbook de l'application :
'(Laurent Longre)
Private Declare Function FindWindowA Lib "User32" _
  (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare Function GetWindowLongA Lib "User32" _
  (ByVal hwnd As Long, ByVal nIndex As Long) As Long

Private Declare Function SetWindowLongA Lib "User32" _
  (ByVal hwnd As Long, ByVal nIndex As Long, _
  ByVal dwNewLong As Long) As Long

Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Dim hwnd As Long
  hwnd = FindWindowA(vbNullString, Application.Caption)
  SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) Or &H80000
End Sub

Private Sub Workbook_Open()
  Dim hwnd As Long
  hwnd = FindWindowA(vbNullString, Application.Caption)
  SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) And &HFFF7FFFF
End Sub
 

Statistiques des forums

Discussions
312 361
Messages
2 087 626
Membres
103 611
dernier inscrit
sebboes