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
3 réponses
-
Bonjour,
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.-
A mettre dans ThisWorkbook:
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 ?-
Comme ceci:
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 -
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. -
-
-