OVH Cloud OVH Cloud

Faire disparaître menus et barres puis les restaurer(vba)

4 réponses
Avatar
linux_pac
Bonjour, je voudrais faire disparaitre les menus puis les faire réapparaître

Pour cela j'ai fait,

Option Explicit
Dim Barres As Collection

Private Sub Workbook_Activate()
Dim Barre As CommandBar
Set Barres = New Collection
For Each Barre In Application.CommandBars
If Barre.Visible = True And _
Barre.Name <> "Worksheet Menu Bar" Then
Barres.Add Barre.Name
Barre.Visible = False
End If
Next Barre
Application.CommandBars("worksheet menu bar").Enabled = False
End Sub

Private Sub Workbook_Deactivate()
Dim Barre As Variant
For Each Barre In Barres
Application.CommandBars(Barre).Visible = True
Next Barre
Application.CommandBars("worksheet menu bar").Enabled = True
End Sub

Il me donne une erreur( Error '424', Objet requis) à For Each Barre In Barres
dans le Sub WorkBook_Deactivate

Une petite aide merci
source:excel labo

4 réponses

Avatar
michdenis
Bonjour,

Ceci ne provoque aucune erreur sur la version Excel 2003.


Salutations!




"" a écrit dans le message de news:

Bonjour, je voudrais faire disparaitre les menus puis les faire réapparaître

Pour cela j'ai fait,

Option Explicit
Dim Barres As Collection

Private Sub Workbook_Activate()
Dim Barre As CommandBar
Set Barres = New Collection
For Each Barre In Application.CommandBars
If Barre.Visible = True And _
Barre.Name <> "Worksheet Menu Bar" Then
Barres.Add Barre.Name
Barre.Visible = False
End If
Next Barre
Application.CommandBars("worksheet menu bar").Enabled = False
End Sub

Private Sub Workbook_Deactivate()
Dim Barre As Variant
For Each Barre In Barres
Application.CommandBars(Barre).Visible = True
Next Barre
Application.CommandBars("worksheet menu bar").Enabled = True
End Sub

Il me donne une erreur( Error '424', Objet requis) à For Each Barre In Barres
dans le Sub WorkBook_Deactivate

Une petite aide merci
source:excel labo
Avatar
jps
For Each Barre In Barres.....? hum hum....y a du louche par rapport à la
syntaxe du Workbook Activate, ce me semble
jps

"michdenis" a écrit dans le message de news:

Bonjour,

Ceci ne provoque aucune erreur sur la version Excel 2003.


Salutations!




"" a écrit
dans le message de news:

Bonjour, je voudrais faire disparaitre les menus puis les faire
réapparaître

Pour cela j'ai fait,

Option Explicit
Dim Barres As Collection

Private Sub Workbook_Activate()
Dim Barre As CommandBar
Set Barres = New Collection
For Each Barre In Application.CommandBars
If Barre.Visible = True And _
Barre.Name <> "Worksheet Menu Bar" Then
Barres.Add Barre.Name
Barre.Visible = False
End If
Next Barre
Application.CommandBars("worksheet menu bar").Enabled = False
End Sub

Private Sub Workbook_Deactivate()
Dim Barre As Variant
For Each Barre In Barres
Application.CommandBars(Barre).Visible = True
Next Barre
Application.CommandBars("worksheet menu bar").Enabled = True
End Sub

Il me donne une erreur( Error '424', Objet requis) à For Each Barre In
Barres
dans le Sub WorkBook_Deactivate

Une petite aide merci
source:excel labo






Avatar
michdenis
Bonjour Sieur du Beaujolais,

| For Each Barre In Barres

Observe en haut de tout du module, (son message)
barres est une variable déclarée au niveau du module
de type collection.

à cet effet, "For Each Barre In Barres" boucle sur chacune
des barres contenues dans la collection...

;-)

Salutations!



"jps" a écrit dans le message de news:
For Each Barre In Barres.....? hum hum....y a du louche par rapport à la
syntaxe du Workbook Activate, ce me semble
jps

"michdenis" a écrit dans le message de news:

Bonjour,

Ceci ne provoque aucune erreur sur la version Excel 2003.


Salutations!




"" a écrit
dans le message de news:

Bonjour, je voudrais faire disparaitre les menus puis les faire
réapparaître

Pour cela j'ai fait,

Option Explicit
Dim Barres As Collection

Private Sub Workbook_Activate()
Dim Barre As CommandBar
Set Barres = New Collection
For Each Barre In Application.CommandBars
If Barre.Visible = True And _
Barre.Name <> "Worksheet Menu Bar" Then
Barres.Add Barre.Name
Barre.Visible = False
End If
Next Barre
Application.CommandBars("worksheet menu bar").Enabled = False
End Sub

Private Sub Workbook_Deactivate()
Dim Barre As Variant
For Each Barre In Barres
Application.CommandBars(Barre).Visible = True
Next Barre
Application.CommandBars("worksheet menu bar").Enabled = True
End Sub

Il me donne une erreur( Error '424', Objet requis) à For Each Barre In
Barres
dans le Sub WorkBook_Deactivate

Une petite aide merci
source:excel labo






Avatar
michdenis
Bonjour JPS,

le demandeur aurait pu enregistrer directement les objets (commandBar)
dans la variable collection au lieu d'y insérer les noms de ces dernières.

La procédure aurait été :

'Variable dans le haut du module
Dim Barres As Collection
'----------------------------------
Private Sub Workbook_Activate()
Dim Barre As CommandBar
Set Barres = New Collection
For Each Barre In Application.CommandBars
If Barre.Visible = True And _
Barre.Name <> "Worksheet Menu Bar" Then
Barres.Add Barre 'Note la subtitlité ici
Barre.Visible = False
End If
Next Barre
Application.CommandBars("worksheet menu bar").Enabled = False
End Sub

'---------------------------
Private Sub Workbook_Deactivate()
Dim Barre As CommandBar
For Each Barre In Barres
Barre.Visible = True
Next Barre
Application.CommandBars("worksheet menu bar").Enabled = True
End Sub
'---------------------------


Salutations!



"jps" a écrit dans le message de news:
For Each Barre In Barres.....? hum hum....y a du louche par rapport à la
syntaxe du Workbook Activate, ce me semble
jps

"michdenis" a écrit dans le message de news:

Bonjour,

Ceci ne provoque aucune erreur sur la version Excel 2003.


Salutations!




"" a écrit
dans le message de news:

Bonjour, je voudrais faire disparaitre les menus puis les faire
réapparaître

Pour cela j'ai fait,

Option Explicit
Dim Barres As Collection

Private Sub Workbook_Activate()
Dim Barre As CommandBar
Set Barres = New Collection
For Each Barre In Application.CommandBars
If Barre.Visible = True And _
Barre.Name <> "Worksheet Menu Bar" Then
Barres.Add Barre.Name
Barre.Visible = False
End If
Next Barre
Application.CommandBars("worksheet menu bar").Enabled = False
End Sub

Private Sub Workbook_Deactivate()
Dim Barre As Variant
For Each Barre In Barres
Application.CommandBars(Barre).Visible = True
Next Barre
Application.CommandBars("worksheet menu bar").Enabled = True
End Sub

Il me donne une erreur( Error '424', Objet requis) à For Each Barre In
Barres
dans le Sub WorkBook_Deactivate

Une petite aide merci
source:excel labo