Masquer le ruban du menu sur tous les classeurs en VBA sur Excel 2013

Fermé
Kingsarky - 26 nov. 2019 à 16:38
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 - 28 nov. 2019 à 13:38
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
A voir également:

3 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
Modifié le 26 nov. 2019 à 16:44
Bonjour,

en vba:

Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)" 'masquer
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)" ' afficher



0
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.
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
Modifié le 27 nov. 2019 à 08:51
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
0
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 ?
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
Modifié le 27 nov. 2019 à 11:23
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
1
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
27 nov. 2019 à 11:32
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
0
kingsarky > cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024
28 nov. 2019 à 00:29
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.
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
28 nov. 2019 à 07:55
As-tu regardé le site ci-dessus.

Laisse tomber le code, on peut supprimer le plein écran de toute façon!
0
kingsarky > cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024
28 nov. 2019 à 09:22
Bonjour,
Jai pensé dans la nuit à deux options :
1. Protéger le VBA
Ou
2. Empêcher l'activation du clic droit de la souris
Je ne sais pas si l'une de ces options est viable ?
0