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

Kingsarky -  
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

3 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    en vba:

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


    0
  2. kingsarky
     
    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
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      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
  3. kingsarky
     
    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
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      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
    2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      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
    3. kingsarky > cs_Le Pivert Messages postés 8437 Statut Contributeur
       
      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
    4. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      As-tu regardé le site ci-dessus.

      Laisse tomber le code, on peut supprimer le plein écran de toute façon!
      0
    5. kingsarky > cs_Le Pivert Messages postés 8437 Statut Contributeur
       
      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