IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Supprimer boutons réduire, niveau inf. et quitter


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    optique
    Inscrit en
    Septembre 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : optique

    Informations forums :
    Inscription : Septembre 2017
    Messages : 8
    Par défaut Supprimer boutons réduire, niveau inf. et quitter
    Bonjour à tous, je viens vous demander du secours sur le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Private Declare PtrSafe Function GetSystemMenu Lib "User32" _ (ByVal hwnd As LongPtr, ByVal bRevert As LongPtr) As LongPtr Private Declare PtrSafe Function DeleteMenu Lib "User32" _ (ByVal hMenu As LongPtr, ByVal nPosition As LongPtr, _ ByVal wFlags As LongPtr) As LongPtr Private Declare PtrSafe Function FindWindowA Lib "User32" _ (ByVal lpClassName As String, ByVal lpWindowName _ As String) As LongPtr ' ' Adaptation du code de Vasant Nanavati, Andrew Baker (mpep) ' Signification du paramètre : ' 6 : désactive la croix de fermeture d'Excel ' et la commande Fermeture du menu système ' 5 : supprime le trait de séparation du menu système ' avant Fermeture ' 4 : supprime la commande Agrandissement du menu système ' et la commande Agrandir de la fenêtre ' 3 : supprime la commande Réduction du menu système ' et désactive la commande Réduire de la fenêtre ' 2 : désactive la commande Déplacement du menu système ' 1 : supprime la commande Déplacement du menu système ' et désactive la commande Dimension ' 0 : supprime la commande Restauration du menu système ' et désactive la commande Restaurer de la fenêtre Public Sub DisableSystemMenu() On Error Resume Next Dim lHandle As LongPtr, lCount As LongPtr, prm As Integer lHandle = FindWindowA(vbNullString, Application.Caption) If lHandle = 0 Then Exit Sub For prm = 6 To 0 Step -1 DeleteMenu GetSystemMenu(lHandle, False), prm, &H400 Next prm End Sub Private Sub EnableSystemMenu() Dim lHandle As LongPtr: On Error Resume Next lHandle = FindWindowA(vbNullString, Application.Caption) GetSystemMenu lHandle, True End Sub
    Grâce à ce code, la croix pour quitter est grisée et inactive.
    Mon problème est qu'il reste toujours les commandes "réduire" et "niveau inf."

    Si quelqu'un voit la solution.
    Merci d'avance

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Bravo pour la "précision" ...
    Bien malin serait celui qui devinerait de quelle fenêtre il s'agit .

  3. #3
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour Jacques,


    Citation Envoyé par unparia Voir le message
    Bien malin serait celui qui devinerait de quelle fenêtre il s'agit .
    Au hasard, la fenêtre Application!

    Voici une traduction de son code...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     Private Declare PtrSafe Function GetSystemMenu Lib "User32" (ByVal hwnd As LongPtr, ByVal bRevert As LongPtr) As LongPtr
     Private Declare PtrSafe Function DeleteMenu Lib "User32" (ByVal hMenu As LongPtr, ByVal nPosition As LongPtr, ByVal wFlags As LongPtr) As LongPtr
     Private Declare PtrSafe Function FindWindowA Lib "User32" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
     ' ' Adaptation du code de Vasant Nanavati, Andrew Baker (mpep)
     ' Signification du paramètre :
     ' 6 : désactive la croix de fermeture d'Excel et la commande Fermeture du menu système
     ' 5 : supprime le trait de séparation du menu système ' avant Fermeture
     ' 4 : supprime la commande Agrandissement du menu système ' et la commande Agrandir de la fenêtre
     ' 3 : supprime la commande Réduction du menu système ' et désactive la commande Réduire de la fenêtre
     ' 2 : désactive la commande Déplacement du menu système
     ' 1 : supprime la commande Déplacement du menu système ' et désactive la commande Dimension
     ' 0 : supprime la commande Restauration du menu système ' et désactive la commande Restaurer de la fenêtre
     Public Sub DisableSystemMenu()
     On Error Resume Next
     Dim lHandle As LongPtr, lCount As LongPtr, prm As Integer
     lHandle = FindWindowA(vbNullString, Application.Caption)
     If lHandle = 0 Then Exit Sub
     For prm = 6 To 0 Step -1
     DeleteMenu GetSystemMenu(lHandle, False), prm, &H400
     Next prm
     End Sub
     Private Sub EnableSystemMenu()
     Dim lHandle As LongPtr:
     On Error Resume Next
     lHandle = FindWindowA(vbNullString, Application.Caption)
     GetSystemMenu lHandle, True
     End Sub

  4. #4
    Membre régulier
    Homme Profil pro
    optique
    Inscrit en
    Septembre 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : optique

    Informations forums :
    Inscription : Septembre 2017
    Messages : 8
    Par défaut
    Bonjour,

    Effectivement, excusez moi pour le manque de précision, et l'affichage illisible du code (j'y ai pourtant ajouté le[code] et le [\code]).
    C'est donc bien pour l'application

    Alors dans mon projet, lorsque j'ouvre le classeur, la feuil3 s'affiche en plein écran.
    Le but est de bloquer la sortie du plein écran.
    Sont déjà bloqués : la touche échappe et le clic droit.
    Le retour à l'affichage excel classique est autorisé par un commandbutton avec mot de passe et il y a un autre commandbutton pour la fermeture du classeur.

    En espérant avoir été plus clair

Discussions similaires

  1. Bouton réduire dans un JDialog
    Par eddie5150 dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 25/03/2009, 14h42
  2. [E-03] Supprimer bouton "Enregistrer"
    Par bmad1 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 26/11/2008, 15h05
  3. Réponses: 6
    Dernier message: 03/11/2008, 11h19
  4. supprimer bouton de commande
    Par casefayere dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/02/2008, 00h34
  5. Réponses: 4
    Dernier message: 16/10/2006, 20h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo