Masquer le ruban du menu sur tous les classeurs en VBA sur Excel 2013
Kingsarky
-
cs_Le Pivert Messages postés 8437 Statut Contributeur -
cs_Le Pivert Messages postés 8437 Statut Contributeur -
Bonjour à tous.
J'ai besoin d'aide pour masquer le ruban du menu sur tous les classeurs d'un fichier par une programmation en VBA sur Excel 2013, de façon qu'aucun autre utilisateur du fichier ne puisse y accéder
Merci d'avance pour votre aide
J'ai besoin d'aide pour masquer le ruban du menu sur tous les classeurs d'un fichier par une programmation en VBA sur Excel 2013, de façon qu'aucun autre utilisateur du fichier ne puisse y accéder
Merci d'avance pour votre aide
A voir également:
- Application.executeexcel4macro "show.toolbar(""ribbon"",false)"
- Word 2013 - Télécharger - Traitement de texte
- Excel 2013 - Télécharger - Tableur
- Menu déroulant excel - Guide
- Comment trier par ordre alphabétique sur excel - Guide
- Powerpoint 2013 - Télécharger - Présentation
3 réponses
Bonjour,
en vba:
en vba:
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)" 'masquer
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)" ' afficher
Bonsoir cs_le Pivert,
Merci pour l'aide, mais en rentrant le code et lançant le débogage, il me renvoi le msg suivant :
Erreur d'exécution 438
Propriété ou méthode non gérée par cet objet.
Merci pour l'aide, mais en rentrant le code et lançant le débogage, il me renvoi le msg suivant :
Erreur d'exécution 438
Propriété ou méthode non gérée par cet objet.
A mettre dans ThisWorkbook:
celui-ci l'utilisateur peut le modifier
tu peux mettre cela à la place, l'utilisateur ne peut pas le modifier à part dans la macro
voilà
@+ Le Pivert
Option Explicit Private Sub Workbook_BeforeClose(Cancel As Boolean) Application.DisplayFullScreen = False 'rétablir End Sub Private Sub Workbook_Open() Application.DisplayFullScreen = True 'masquer End Sub
celui-ci l'utilisateur peut le modifier
tu peux mettre cela à la place, l'utilisateur ne peut pas le modifier à part dans la macro
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)" 'masquer
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)" ' afficher
voilà
@+ Le Pivert
Merci, encore
Celui-ci :
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayFullScreen = False 'rétablir
End Sub
Private Sub Workbook_Open()
Application.DisplayFullScreen = True 'masquer
End Sub
Fonctionne bien comparativement au premier.
Mais tu dis qu'un utilisateur peut le modifier, justement je ne le veux pas.
Comment faire pour empêcher sa modification par un utilisateur ?
Celui-ci :
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayFullScreen = False 'rétablir
End Sub
Private Sub Workbook_Open()
Application.DisplayFullScreen = True 'masquer
End Sub
Fonctionne bien comparativement au premier.
Mais tu dis qu'un utilisateur peut le modifier, justement je ne le veux pas.
Comment faire pour empêcher sa modification par un utilisateur ?
Comme ceci:
@+ Le Pivert
Option Explicit
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
Dim hWnd As Long
Private Sub Workbook_BeforeClose(Cancel As Boolean)
retablir
End Sub
Private Sub Workbook_Open()
pleinecran
End Sub
'plein écran
Sub pleinecran()
hWnd = FindWindowA(vbNullString, Application.Caption)
Application.DisplayAlerts = False
SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) And &HFFF7FFFF
'plein écran
Application.DisplayFullScreen = True
'Masquer le quadrillage
ActiveWindow.DisplayGridlines = False
' Masquer les en-têtes
ActiveWindow.DisplayHeadings = False
' Masquer les barres de défilement
ActiveWindow.DisplayHorizontalScrollBar = False
ActiveWindow.DisplayVerticalScrollBar = False
' Masquer les onglets de classeur
ActiveWindow.DisplayWorkbookTabs = False
Application.DisplayAlerts = True
End Sub
'rétablir
Sub retablir()
Application.DisplayAlerts = False
hWnd = FindWindowA(vbNullString, Application.Caption)
SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) Or &H80000
'plein écran
Application.DisplayFullScreen = False
'Masquer le quadrillage
ActiveWindow.DisplayGridlines = True
' Masquer les en-têtes
ActiveWindow.DisplayHeadings = True
' Masquer les barres de défilement
ActiveWindow.DisplayHorizontalScrollBar = True
ActiveWindow.DisplayVerticalScrollBar = True
' Masquer les onglets de classeur
ActiveWindow.DisplayWorkbookTabs = True
Application.DisplayAlerts = True
End Sub
@+ Le Pivert
je suis en Excel 2007, mais j'ai trouvé ceci pour 2013 qui devrait t’intéresser:
https://askcodez.com/vba-auto-masquer-le-ruban-dans-excel-2013.html
Le code que j'ai mis ci-dessus, n'est pas parfait. Il suffit de faire un clic droit sur la feuille pour enlever le plein écran. Donc lis le site que j'ai mis pour 2013, tu trouveras réponse à ton problème
@+ Le Pivert
https://askcodez.com/vba-auto-masquer-le-ruban-dans-excel-2013.html
Le code que j'ai mis ci-dessus, n'est pas parfait. Il suffit de faire un clic droit sur la feuille pour enlever le plein écran. Donc lis le site que j'ai mis pour 2013, tu trouveras réponse à ton problème
@+ Le Pivert
Bonsoir,
J'ai recopié le code que tu m'as fourni dans le ThisWorkbook.
plusieurs lignes sont en rouge et il me renvoi le msg suivant : " Le vide contenu dans ce projet doit être mis à jour pour pouvoir être utilisé sur les systèmes 64 bits, Vérifiez et mettre à jour les instructions Declare, puis. Marquez les avec l'attribut PtrSafe."
Je ne m'y retrouve pas..... Car j'utilise un. 64 bits.
J'ai recopié le code que tu m'as fourni dans le ThisWorkbook.
plusieurs lignes sont en rouge et il me renvoi le msg suivant : " Le vide contenu dans ce projet doit être mis à jour pour pouvoir être utilisé sur les systèmes 64 bits, Vérifiez et mettre à jour les instructions Declare, puis. Marquez les avec l'attribut PtrSafe."
Je ne m'y retrouve pas..... Car j'utilise un. 64 bits.