Bonjour,
J'aimerais masquer les 3 boutons (réduire, agrandir et la croix) de la barre de titre excel.
Bonjour,
J'aimerais masquer les 3 boutons (réduire, agrandir et la croix) de la barre de titre excel.
Vu quelque part
Il uy avait ceci aussi (http://www.developpez.net/forums/d10...fenetre-excel/)
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87 '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 QuestVba,
Tous d'abord, je tenais à vous remercier pour le temps que vous me consacrer.
Pourriez-vous me dire ou est-ce que je dois placer votre code si c'est dans un
CommandButton ou dans le ThisWorkbook.
En vous remerciant à l'avance.
Bonjour,
Grâce à vos réponses j'arrive quasiment à terminer ce que je recherche.
Pour Le finir totalement, il faudrait qu'on arrive pas à active le bouton restaurer (celui-ci du milieu).
Je vous remercie de votre temps.
Bonjour mercidevotreaidd
en réponse a ton mp
voila une version utilisant 3 apis ainsi que les application.(.....)
copie ca dans un module standard
tu fait appel normal pour remettre la grille ou onlygrille pour avoir que la grille
ensuite met 2 boutons dans une feuille et dans le module de cette meme feuille colle ceci
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
28
29
30
31
32
33
34
35
36
37
38 ' &H94CB0080 = les trois boutons ' &H94C00080 = le bouton minimiser ' &H94C90080 = le bouton maximiser ' &H94CC0080 = l'elasticité ' &H94CF0080 = les trois boutons et l'élasticité >>>>>supporte l'aero Snap(seven et window8 ' &H94080080 = pas de caption ' &H94C00000 = sans bouton sur la caption ' &H140F0101 = sans caption avec cadre large coin arrondi et elastic >>>>>supporte l'aero Snap(seven et window8 ' &H94C40000 = sans bouton sur la caption avec élasticité Option Explicit ' capture le handle de la fenetre Public Declare Function GAW Lib "user32" Alias "GetActiveWindow" () As Long 'api pour appliquer le nouveau style a la fenetre (userform) Public Declare Function SWLA Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long 'redessine la fenetre apres modification Public Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long Sub normal() SWLA GAW, -16, &H94CB0080: SWLA GAW, -20, &H0: DrawMenuBar GAW Application.DisplayFullScreen = False Application.DisplayStatusBar = True Application.DisplayFormulaBar = True ActiveWindow.DisplayWorkbookTabs = True ActiveWindow.DisplayHeadings = True Application.DisplayScrollBars = True End Sub Sub onlygrille() SWLA GAW, -16, &H94080080: SWLA GAW, -20, &H0: DrawMenuBar GAW Application.DisplayFullScreen = True Application.DisplayStatusBar = False Application.DisplayFormulaBar = False ActiveWindow.DisplayWorkbookTabs = False ActiveWindow.DisplayHeadings = False Application.DisplayScrollBars = False End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Private Sub CommandButton2_Click() normal End Sub Private Sub CommandButton3_Click() onlygrille End Sub
attention dans cet exemple comme ca vite fait j'ai utilisé l'api getactivewindow
ca peut être problématique lorsque plusieurs fenêtre sont affichées
tu pourrais modifier avec l'api findwindow sur une variable long pour le handle
mille excuse pour la réponse tardive j'ai beaucoup de boulot pour les fêtes
au plaisir![]()
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer :: ça peut servir aux autres
et n'oublie pas de voter
Bonjour Patrick,
Tous d'abord je tenais à vous remercier énormément car c'est ce que je chercher et ensuite pas besoin de vous excuser pour la rapidité de la réponse.
C'est moi qui vous remercie de votre temps à mon égard.
juste une petite question:
en appliquant votre code, je m'aperçois que le plein écran et un peu dégaler (est ce normal). Si oui, Pour cela j'ai juste fais pour la ligne 1 (j'ai changer la hauteur à 4,25) et pour la colonne A (j'ai changer la largeur à 0,25).
Comme cela en appliquant votre code on s'aperçoit pas du décalage.
Si ce n'est pas trop abuser est-ce possible d’interdire la touche esc du clavier comme ceci tous sera vraiment désactiver.
Un très grand merci pour le temps que vous me consacrer
Partager