XL 2016 Verrouillage de la commande "Masquer automatiquement le ruban .... etc"

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

JMLT

XLDnaute Nouveau
Bonjour à tous,
J'ai un fichier excel avec macros qui sera utilisé par de nombreuses personnes pas nécessairement habituées à travailler sur un ordinateur et cela dans des conditions " Campagne " donc pas propices à ce travail.
J'ai besoin pour des raisons de sécrurité du fichier d'interdire la touche Masquer automatiquement le ruban .... etc sur tous les onglets sauf sur un seul sur lequel ils auront des modifications à apporter.
J'ai un niveau vraiment plus que basique en VBA.
Quelqu'un peut il m'écrire un code pour réaliser ces action s'il vous plait ?
Par avance merci
 
Bonjour code à mettre dans le module "Workbook" du classeur :
1748936196188.png

VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
' Indispensable pour ne pas rester en ruban masqué éventuel en sortie de classeur
    Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)"
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim St As Integer
    St = Sh.Name <> "Feuil1" ' <-- nom de la feuille où le ruban reste affiché
    Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon""," & St & ")"
End Sub
 
Bonjour code à mettre dans le module "Workbook" du classeur :
Regarde la pièce jointe 1218780
VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
' Indispensable pour ne pas rester en ruban masqué éventuel en sortie de classeur
    Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)"
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim St As Integer
    St = Sh.Name <> "Feuil1" ' <-- nom de la feuille où le ruban reste affiché
    Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon""," & St & ")"
End Sub
Bonjour, merci beaucoup. Je vaus tester cela en fin de journée. Je te tiens au courant. Belle journée à toi.
 
Je dois mal m'y prendre, il y avait déjà ueu un essai. La feuille pour laquelle le ruban doit rester accessible est la feuille "Coureurs" Et je dois moi même pouvoir accéder au ruban avec cun mot de passe disons "vrc" pour l'instant. Je le changerai plus tard. Par avcance merci pour ton aide , même plus que ton aide.
 
Bonjour et encore merci. j'ai essayé mille façons de l'intégrer hélas ça coince toujours.
Le fichier pour le Module ,1 je peux l'intégrer dans un fichier "Module 1" existant ?
Ce sera déjà la moitié de faite. Je l'ai dit je suis à un niveau plus que bas en VBA
 
Bonjour et encore merci. j'ai essayé mille façons de l'intégrer hélas ça coince toujours.
Le fichier pour le Module ,1 je peux l'intégrer dans un fichier "Module 1" existant ?
Ce sera déjà la moitié de faite. Je l'ai dit je suis à un niveau plus que bas en VBA
Salut, je te renvoie le classeur car j'avais oublié de sauvegarder une des modifs .

1749120358324.png

1749120379888.png
 

Pièces jointes

Merci, voici le message d'erreur qui apparait à la fermeture du fichier :
Le code à insérer dans le thisworkbook doit l'être tel quel s'il n'y a rien d'existant .
Sinon il faut insérer les lignes des code de chaque Sub dans les Sub existantes .
L'erreur signalée se produit car il y a des sub en doublon .
Conseil : insèrer les codes en sortie des subs ( juste avant le End Sub )
Exemple:
VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    '..... lignes .......
    '..... de code ......
    '..... existantes ...
' Indispensable pour ne pas rester en ruban masqué éventuel en sortie de classeur
    Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)"
    Application.OnKey "^r"
End Sub

Private Sub Workbook_Open()
    '..... lignes .......
    '..... de code ......
    '..... existantes ...
    Application.OnKey "^r", "Show_Ribbon" ' ctrl+m
    Workbook_SheetActivate ActiveSheet
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    '..... lignes .......
    '..... de code ......
    '..... existantes ...
Dim St As Integer
    St = Sh.Name = "Coureurs" ' <-- nom de la feuille où le ruban reste affiché
    Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon""," & St & ")"
End Sub

Je l'ai dit je suis à un niveau plus que bas en VBA
Quand je vois le nombre de modules et d'userforms de ton classeur, tu vas devoir t'adapter très vite au codage et aux événements excel ....
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour