Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Masquer la barre menu et d'outils à l'ouverture d'un fichier sans altérer les autres potentiellement ouverts ?

1 réponse
Avatar
JeanYvesGascon
Bonjour,

Dans le cadre d'un travail collaboratif en r=E9seau, je souhaiterai
pouvoir masquer la barre des menus Excel (Fichier, Affichage ...)
ainsi que les =E9ventuelles barres d'outils =E0 l'ouverture du fichier
TestMasque.xls (=E0 titre d'exemple) sans port=E9e sur les autres fichiers
xls ouverts.

le dit fichier TestMasque.xls se ferme par un commandBouton.

J'ai essay=E9 avec =E7a :

Private Sub Workbook_Open()
Dim CmdB As CommandBar
For Each CmdB In Application.CommandBars
CmdB.Enabled =3D False
Next CmdB
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim CmdB As CommandBar
For Each CmdB In Application.CommandBars
CmdB.Enabled =3D True
Next CmdB
End Sub

Merci de vos =E9clairages et vos avis =E9clair=E9s

Cordialement

JeanYves91360

1 réponse

Avatar
MichD
L'approche décrite est valide pour Excel 1997 à 2003

Voici un fichier exemple : http://cjoint.com/?AIzrQeIb5bd

Le principe, tu enregistres dans une feuille dédiée à cette tâche la liste
des barres de menu affichées à l'ouverture (activation dans le thisWorkbook)
et tu restitues les barres de menu comme à l'ouverture dès que tu ouvres
ou sélectionnes un autre classeur.

Code dans le ThisWorkbook :

Private Sub Workbook_Activate()
Creer_Barre_Menu
Lister_Barre_Menu_Afficher
End Sub

Private Sub Workbook_Deactivate()
Call supprimer_Ma_Barre
Afficher_Les_Barres_Menu
End Sub

Code dans le module standard nommé Module1
'------------------------------------
Sub Creer_Barre_Menu()
Dim Mbar As CommandBar
On Error Resume Next
Call supprimer_Ma_Barre

Set Mbar = Application.CommandBars.Add("MichDenis")
With Mbar
.Visible = True
.Position = msoBarTop
End With
With Mbar.Controls
With .Add
.Caption = "Ok1"
.Style = msoButtonIconAndCaption
.OnAction = "Module1.MaMacro"
.FaceId = 19
End With
With .Add
.Caption = "Ok2"
.Style = msoButtonIconAndCaption
.OnAction = "Module1.MaMacro1"
.FaceId = 27
End With
End With
End Sub
'------------------------------------
Sub supprimer_Ma_Barre()
Application.CommandBars("MichDenis").Delete
End Sub
'------------------------------------
Sub MaMacro()
MsgBox "Bonjour"
End Sub
'------------------------------------
Sub MaMacro1()
MsgBox "Bonsoir"
End Sub
'------------------------------------
Sub Lister_Barre_Menu_Afficher()
Dim Mbar As CommandBar, A As Integer
With Feuil4
.Cells.Clear
For Each Mbar In Application.CommandBars
If Mbar.Name = "Worksheet Menu Bar" Then
If Mbar.Enabled = True Then
A = A + 1
.Range("A" & A) = Mbar.Name
Mbar.Enabled = False
End If
Else
If Mbar.Visible = True Then
A = A + 1
.Range("A" & A) = Mbar.Name
Mbar.Visible = False
End If
End If
Next
End With
End Sub
'------------------------------------
Sub Afficher_Les_Barres_Menu()
Dim C As Range
Dim Mbar As CommandBar, A As Integer
With Feuil4
For Each C In .Range("A1:A" & .Range("A65536").End(xlUp).Row)
If C.Value <> "" Then
If C.Value = "Worksheet Menu Bar" Then
Application.CommandBars(C.Value).Enabled = True
Else
Application.CommandBars(C.Value).Enabled = True
Application.CommandBars(C.Value).Visible = True
End If
End If
Next
End With
End Sub
'------------------------------------
Sub Masquer_Feuille_Affichant_Éléments_Du_Menu()
'La feuille devient inaccessible par l'interface de
'la feuille de calcul
Feuil4.Visible = xlSheetVeryHidden
End Sub
'------------------------------------
Sub Afficher_Feuille_Affichant_Éléments_Du_Menu()
Feuil4.Visible = True
End Sub
'------------------------------------


MichD
------------------------------------------
"JeanYvesGascon" a écrit dans le message de groupe de discussion :


Bonjour,

Dans le cadre d'un travail collaboratif en réseau, je souhaiterai
pouvoir masquer la barre des menus Excel (Fichier, Affichage ...)
ainsi que les éventuelles barres d'outils à l'ouverture du fichier
TestMasque.xls (à titre d'exemple) sans portée sur les autres fichiers
xls ouverts.

le dit fichier TestMasque.xls se ferme par un commandBouton.

J'ai essayé avec ça :

Private Sub Workbook_Open()
Dim CmdB As CommandBar
For Each CmdB In Application.CommandBars
CmdB.Enabled = False
Next CmdB
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim CmdB As CommandBar
For Each CmdB In Application.CommandBars
CmdB.Enabled = True
Next CmdB
End Sub

Merci de vos éclairages et vos avis éclairés

Cordialement

JeanYves91360