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

Récupération des barres de commande masquées

8 réponses
Avatar
MV71
Bonjour,
J'ai un petit souci sous Office 2003: une de mes applications masque toutes
les barres (Workbook_open).
For Each cbar In Application.CommandBars
cbar.Enabled = False
Next
et à la fin:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars.ActiveMenuBar.Enabled = True
Application.CommandBars("Formatting").Visible = True
Application.CommandBars("Standard").Visible = True
Application.DisplayFormulaBar = True
Application.DisplayScrollBars = True
Application.DisplayStatusBar = True
End Sub

Les barres sont bien rétablies, mais il manque pas mal d'options dans les
menus, par exemple, Format ne propose plus que la cellule ou la feuille,
format conditionnel et tout le reste ont disparu.
J'ai aussi essayé d'y rajouter
Application.CommandBars.ActiveMenuBar.Enabled = True
For Each cbar In CommandBars
cbar.Enabled = True
mais ça m'affiche une infinité de barres que je dois toutes fermer une à une
sans pour autant résoudre le problème de départ : les options manquantes.
Pour les retrouver, je dois faire une réparation d'Excel.
Comment pourrais-je modifier le code pour récupérer mon affichage habituel
complet en sortie.
Merci d'avance pour votre aide.

8 réponses

Avatar
isabelle
bonjour mv,

Application.CommandBars("Formatting").Reset

isabelle

MV71 a écrit :
Bonjour,
J'ai un petit souci sous Office 2003: une de mes applications masque
toutes les barres (Workbook_open).
For Each cbar In Application.CommandBars
cbar.Enabled = False
Next
et à la fin:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars.ActiveMenuBar.Enabled = True
Application.CommandBars("Formatting").Visible = True
Application.CommandBars("Standard").Visible = True
Application.DisplayFormulaBar = True
Application.DisplayScrollBars = True
Application.DisplayStatusBar = True
End Sub

Les barres sont bien rétablies, mais il manque pas mal d'options dans
les menus, par exemple, Format ne propose plus que la cellule ou la
feuille, format conditionnel et tout le reste ont disparu.
J'ai aussi essayé d'y rajouter
Application.CommandBars.ActiveMenuBar.Enabled = True
For Each cbar In CommandBars
cbar.Enabled = True
mais ça m'affiche une infinité de barres que je dois toutes fermer une
à une sans pour autant résoudre le problème de départ : les options
manquantes.
Pour les retrouver, je dois faire une réparation d'Excel.
Comment pourrais-je modifier le code pour récupérer mon affichage
habituel complet en sortie.
Merci d'avance pour votre aide.


Avatar
MV71
Bonjour Isabelle
Merci pour cette réponse rapide, je vais l'essayer tout de suite.
Bonne journée

"isabelle" a écrit dans le message de groupe de discussion :

bonjour mv,

Application.CommandBars("Formatting").Reset

isabelle

MV71 a écrit :
Bonjour,
J'ai un petit souci sous Office 2003: une de mes applications masque
toutes les barres (Workbook_open).
For Each cbar In Application.CommandBars
cbar.Enabled = False
Next
et à la fin:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars.ActiveMenuBar.Enabled = True
Application.CommandBars("Formatting").Visible = True
Application.CommandBars("Standard").Visible = True
Application.DisplayFormulaBar = True
Application.DisplayScrollBars = True
Application.DisplayStatusBar = True
End Sub

Les barres sont bien rétablies, mais il manque pas mal d'options dans les
menus, par exemple, Format ne propose plus que la cellule ou la feuille,
format conditionnel et tout le reste ont disparu.
J'ai aussi essayé d'y rajouter
Application.CommandBars.ActiveMenuBar.Enabled = True
For Each cbar In CommandBars
cbar.Enabled = True
mais ça m'affiche une infinité de barres que je dois toutes fermer une à
une sans pour autant résoudre le problème de départ : les options
manquantes.
Pour les retrouver, je dois faire une réparation d'Excel.
Comment pourrais-je modifier le code pour récupérer mon affichage
habituel complet en sortie.
Merci d'avance pour votre aide.




Avatar
MV71
Rebonjour,
J'ai oublié de demander quelque chose :
Ceci me rétablira-t-il tout de suite l'affichage normal, ou dois-je d'abord
réparer à nouveau Excel ?
L'ordinateur que j'utilise en ce moment a la version 2007 et c'est pourquoi
je pose la question avant d'aller sur l'autre.
2ème question : le code présenté ne fonctionne pas avec Excel 2007; sais-tu
comment masquer le bandeau, ...et le rétablir!
Encore merci de bien vouloir me conseiller

"isabelle" a écrit dans le message de groupe de discussion :

bonjour mv,

Application.CommandBars("Formatting").Reset

isabelle

MV71 a écrit :
Bonjour,
J'ai un petit souci sous Office 2003: une de mes applications masque
toutes les barres (Workbook_open).
For Each cbar In Application.CommandBars
cbar.Enabled = False
Next
et à la fin:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars.ActiveMenuBar.Enabled = True
Application.CommandBars("Formatting").Visible = True
Application.CommandBars("Standard").Visible = True
Application.DisplayFormulaBar = True
Application.DisplayScrollBars = True
Application.DisplayStatusBar = True
End Sub

Les barres sont bien rétablies, mais il manque pas mal d'options dans les
menus, par exemple, Format ne propose plus que la cellule ou la feuille,
format conditionnel et tout le reste ont disparu.
J'ai aussi essayé d'y rajouter
Application.CommandBars.ActiveMenuBar.Enabled = True
For Each cbar In CommandBars
cbar.Enabled = True
mais ça m'affiche une infinité de barres que je dois toutes fermer une à
une sans pour autant résoudre le problème de départ : les options
manquantes.
Pour les retrouver, je dois faire une réparation d'Excel.
Comment pourrais-je modifier le code pour récupérer mon affichage
habituel complet en sortie.
Merci d'avance pour votre aide.




Avatar
michdenis
Les barres d'outils, celles qui sont visibles, tu peux les mettres
dans un tableau ou mettre leur nom dans une plage de cellules
sur une feuille ayant la propriété Visible = XlVeryHidden
à la fin de la procédure, tu sais exactement lesquelles des
barres de commandes doivent être restaurées(visibles)

Voici un exemple de procédure utilisant un tableau réalisé par Alain Cros
et publié ici sur ce forum :
à l'ouverture, tu appelles : GestionInterface false
à la fermeture, tu appels : GestionInterface True
'----------------------------------
Sub GestionInterface(Optional etat As Boolean = True)
Static TblCb() As Boolean
Static TblEtat(1) As Boolean
Static NbCb As Integer
Dim Cb As Integer

Select Case etat
Case True 'bloquage
With Application
.ScreenUpdating = False
NbCb = .CommandBars.Count
ReDim TblCb(1 To NbCb)
For Cb = 1 To NbCb
With .CommandBars(Cb)
TblCb(Cb) = .Enabled
.Enabled = False
End With
Next Cb
TblEtat(0) = .DisplayFormulaBar
TblEtat(1) = .DisplayStatusBar
.DisplayFormulaBar = False
.DisplayStatusBar = False
End With
Case False 'debloquage
With Application
.ScreenUpdating = False
For Cb = 1 To NbCb
.CommandBars(Cb).Enabled = TblCb(Cb)
Next Cb
.DisplayFormulaBar = TblEtat(0)
.DisplayStatusBar = TblEtat(1)
End With
End Select
End Sub
'----------------------------------

De plus sous Excel 2003, si tu veux empêcher que des petits malins
créent de nouvelles barres ou ajoutent des contrôles, il y a ceci :

Application.CommandBars("Toolbar List").Enabled = False
Application.CommandBars.DisableCustomize = True


"MV71" a écrit dans le message de
news:
Bonjour,
J'ai un petit souci sous Office 2003: une de mes applications masque
toutes les barres (Workbook_open).
For Each cbar In Application.CommandBars
cbar.Enabled = False
Next
et à la fin:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars.ActiveMenuBar.Enabled = True
Application.CommandBars("Formatting").Visible = True
Application.CommandBars("Standard").Visible = True
Application.DisplayFormulaBar = True
Application.DisplayScrollBars = True
Application.DisplayStatusBar = True
End Sub

Les barres sont bien rétablies, mais il manque pas mal d'options dans les
menus, par exemple, Format ne propose plus que la cellule ou la feuille,
format conditionnel et tout le reste ont disparu.
J'ai aussi essayé d'y rajouter
Application.CommandBars.ActiveMenuBar.Enabled = True
For Each cbar In CommandBars
cbar.Enabled = True
mais ça m'affiche une infinité de barres que je dois toutes fermer une à
une sans pour autant résoudre le problème de départ : les options
manquantes.
Pour les retrouver, je dois faire une réparation d'Excel.
Comment pourrais-je modifier le code pour récupérer mon affichage habituel
complet en sortie.
Merci d'avance pour votre aide.


Avatar
MV71
Bonjour Michdenis
Merci pour cette procédure qui me semble particulièrement intéressante et
sûre. Si je préfère placer les données recueillies sur un feuille pour
préserver la mémoire, quelles modifications dois-je faire ?
Merci de ton aide.

"michdenis" a écrit dans le message de groupe de
discussion :
Les barres d'outils, celles qui sont visibles, tu peux les mettres
dans un tableau ou mettre leur nom dans une plage de cellules
sur une feuille ayant la propriété Visible = XlVeryHidden
à la fin de la procédure, tu sais exactement lesquelles des
barres de commandes doivent être restaurées(visibles)

Voici un exemple de procédure utilisant un tableau réalisé par Alain Cros
et publié ici sur ce forum :
à l'ouverture, tu appelles : GestionInterface false
à la fermeture, tu appels : GestionInterface True
'----------------------------------
Sub GestionInterface(Optional etat As Boolean = True)
Static TblCb() As Boolean
Static TblEtat(1) As Boolean
Static NbCb As Integer
Dim Cb As Integer

Select Case etat
Case True 'bloquage
With Application
.ScreenUpdating = False
NbCb = .CommandBars.Count
ReDim TblCb(1 To NbCb)
For Cb = 1 To NbCb
With .CommandBars(Cb)
TblCb(Cb) = .Enabled
.Enabled = False
End With
Next Cb
TblEtat(0) = .DisplayFormulaBar
TblEtat(1) = .DisplayStatusBar
.DisplayFormulaBar = False
.DisplayStatusBar = False
End With
Case False 'debloquage
With Application
.ScreenUpdating = False
For Cb = 1 To NbCb
.CommandBars(Cb).Enabled = TblCb(Cb)
Next Cb
.DisplayFormulaBar = TblEtat(0)
.DisplayStatusBar = TblEtat(1)
End With
End Select
End Sub
'----------------------------------

De plus sous Excel 2003, si tu veux empêcher que des petits malins
créent de nouvelles barres ou ajoutent des contrôles, il y a ceci :

Application.CommandBars("Toolbar List").Enabled = False
Application.CommandBars.DisableCustomize = True


"MV71" a écrit dans le message de
news:
Bonjour,
J'ai un petit souci sous Office 2003: une de mes applications masque
toutes les barres (Workbook_open).
For Each cbar In Application.CommandBars
cbar.Enabled = False
Next
et à la fin:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars.ActiveMenuBar.Enabled = True
Application.CommandBars("Formatting").Visible = True
Application.CommandBars("Standard").Visible = True
Application.DisplayFormulaBar = True
Application.DisplayScrollBars = True
Application.DisplayStatusBar = True
End Sub

Les barres sont bien rétablies, mais il manque pas mal d'options dans les
menus, par exemple, Format ne propose plus que la cellule ou la feuille,
format conditionnel et tout le reste ont disparu.
J'ai aussi essayé d'y rajouter
Application.CommandBars.ActiveMenuBar.Enabled = True
For Each cbar In CommandBars
cbar.Enabled = True
mais ça m'affiche une infinité de barres que je dois toutes fermer une à
une sans pour autant résoudre le problème de départ : les options
manquantes.
Pour les retrouver, je dois faire une réparation d'Excel.
Comment pourrais-je modifier le code pour récupérer mon affichage
habituel complet en sortie.
Merci d'avance pour votre aide.





Avatar
isabelle
bonjour Mv,

désolé je n'ai pas xl2007 je ne peut donc tester,
il y a ce livre qui est paru dernièrement :

VBA pour Microsoft Office 2007
La Bible
de Jean-Philippe Ambrosino, Laurent Longre, Céline Loos Sparfel,
Jean-Paul Mesters

http://excel.developpez.com/livres/#L9782742983919

isabelle


MV71 a écrit :
Rebonjour,
J'ai oublié de demander quelque chose :
Ceci me rétablira-t-il tout de suite l'affichage normal, ou dois-je
d'abord réparer à nouveau Excel ?
L'ordinateur que j'utilise en ce moment a la version 2007 et c'est
pourquoi je pose la question avant d'aller sur l'autre.
2ème question : le code présenté ne fonctionne pas avec Excel 2007;
sais-tu comment masquer le bandeau, ...et le rétablir!
Encore merci de bien vouloir me conseiller

"isabelle" a écrit dans le message de groupe de discussion :

bonjour mv,

Application.CommandBars("Formatting").Reset

isabelle

MV71 a écrit :
Bonjour,
J'ai un petit souci sous Office 2003: une de mes applications masque
toutes les barres (Workbook_open).
For Each cbar In Application.CommandBars
cbar.Enabled = False
Next
et à la fin:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars.ActiveMenuBar.Enabled = True
Application.CommandBars("Formatting").Visible = True
Application.CommandBars("Standard").Visible = True
Application.DisplayFormulaBar = True
Application.DisplayScrollBars = True
Application.DisplayStatusBar = True
End Sub

Les barres sont bien rétablies, mais il manque pas mal d'options
dans les menus, par exemple, Format ne propose plus que la cellule
ou la feuille, format conditionnel et tout le reste ont disparu.
J'ai aussi essayé d'y rajouter
Application.CommandBars.ActiveMenuBar.Enabled = True
For Each cbar In CommandBars
cbar.Enabled = True
mais ça m'affiche une infinité de barres que je dois toutes fermer
une à une sans pour autant résoudre le problème de départ : les
options manquantes.
Pour les retrouver, je dois faire une réparation d'Excel.
Comment pourrais-je modifier le code pour récupérer mon affichage
habituel complet en sortie.
Merci d'avance pour votre aide.







Avatar
michdenis
Sur le site http://frederic.sigonneau.free.fr/ , tu as d'autres exemples
et façon de faire.

Tu as suffisamment d'information pour générer ton application...
il manque un ingrédient -> l'apprentissage ;-)



"MV71" a écrit dans le message de groupe de discussion :

Bonjour Michdenis
Merci pour cette procédure qui me semble particulièrement intéressante et
sûre. Si je préfère placer les données recueillies sur un feuille pour
préserver la mémoire, quelles modifications dois-je faire ?
Merci de ton aide.

"michdenis" a écrit dans le message de groupe de
discussion :
Les barres d'outils, celles qui sont visibles, tu peux les mettres
dans un tableau ou mettre leur nom dans une plage de cellules
sur une feuille ayant la propriété Visible = XlVeryHidden
à la fin de la procédure, tu sais exactement lesquelles des
barres de commandes doivent être restaurées(visibles)

Voici un exemple de procédure utilisant un tableau réalisé par Alain Cros
et publié ici sur ce forum :
à l'ouverture, tu appelles : GestionInterface false
à la fermeture, tu appels : GestionInterface True
'----------------------------------
Sub GestionInterface(Optional etat As Boolean = True)
Static TblCb() As Boolean
Static TblEtat(1) As Boolean
Static NbCb As Integer
Dim Cb As Integer

Select Case etat
Case True 'bloquage
With Application
.ScreenUpdating = False
NbCb = .CommandBars.Count
ReDim TblCb(1 To NbCb)
For Cb = 1 To NbCb
With .CommandBars(Cb)
TblCb(Cb) = .Enabled
.Enabled = False
End With
Next Cb
TblEtat(0) = .DisplayFormulaBar
TblEtat(1) = .DisplayStatusBar
.DisplayFormulaBar = False
.DisplayStatusBar = False
End With
Case False 'debloquage
With Application
.ScreenUpdating = False
For Cb = 1 To NbCb
.CommandBars(Cb).Enabled = TblCb(Cb)
Next Cb
.DisplayFormulaBar = TblEtat(0)
.DisplayStatusBar = TblEtat(1)
End With
End Select
End Sub
'----------------------------------

De plus sous Excel 2003, si tu veux empêcher que des petits malins
créent de nouvelles barres ou ajoutent des contrôles, il y a ceci :

Application.CommandBars("Toolbar List").Enabled = False
Application.CommandBars.DisableCustomize = True


"MV71" a écrit dans le message de
news:
Bonjour,
J'ai un petit souci sous Office 2003: une de mes applications masque
toutes les barres (Workbook_open).
For Each cbar In Application.CommandBars
cbar.Enabled = False
Next
et à la fin:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars.ActiveMenuBar.Enabled = True
Application.CommandBars("Formatting").Visible = True
Application.CommandBars("Standard").Visible = True
Application.DisplayFormulaBar = True
Application.DisplayScrollBars = True
Application.DisplayStatusBar = True
End Sub

Les barres sont bien rétablies, mais il manque pas mal d'options dans les
menus, par exemple, Format ne propose plus que la cellule ou la feuille,
format conditionnel et tout le reste ont disparu.
J'ai aussi essayé d'y rajouter
Application.CommandBars.ActiveMenuBar.Enabled = True
For Each cbar In CommandBars
cbar.Enabled = True
mais ça m'affiche une infinité de barres que je dois toutes fermer une à
une sans pour autant résoudre le problème de départ : les options
manquantes.
Pour les retrouver, je dois faire une réparation d'Excel.
Comment pourrais-je modifier le code pour récupérer mon affichage
habituel complet en sortie.
Merci d'avance pour votre aide.





Avatar
MV71
Oui papa
Merci quand même.

"michdenis" a écrit dans le message de groupe de
discussion :
Sur le site http://frederic.sigonneau.free.fr/ , tu as d'autres exemples
et façon de faire.

Tu as suffisamment d'information pour générer ton application...
il manque un ingrédient -> l'apprentissage ;-)



"MV71" a écrit dans le message de groupe
de discussion :

Bonjour Michdenis
Merci pour cette procédure qui me semble particulièrement intéressante et
sûre. Si je préfère placer les données recueillies sur un feuille pour
préserver la mémoire, quelles modifications dois-je faire ?
Merci de ton aide.

"michdenis" a écrit dans le message de groupe de
discussion :
Les barres d'outils, celles qui sont visibles, tu peux les mettres
dans un tableau ou mettre leur nom dans une plage de cellules
sur une feuille ayant la propriété Visible = XlVeryHidden
à la fin de la procédure, tu sais exactement lesquelles des
barres de commandes doivent être restaurées(visibles)

Voici un exemple de procédure utilisant un tableau réalisé par Alain Cros
et publié ici sur ce forum :
à l'ouverture, tu appelles : GestionInterface false
à la fermeture, tu appels : GestionInterface True
'----------------------------------
Sub GestionInterface(Optional etat As Boolean = True)
Static TblCb() As Boolean
Static TblEtat(1) As Boolean
Static NbCb As Integer
Dim Cb As Integer

Select Case etat
Case True 'bloquage
With Application
.ScreenUpdating = False
NbCb = .CommandBars.Count
ReDim TblCb(1 To NbCb)
For Cb = 1 To NbCb
With .CommandBars(Cb)
TblCb(Cb) = .Enabled
.Enabled = False
End With
Next Cb
TblEtat(0) = .DisplayFormulaBar
TblEtat(1) = .DisplayStatusBar
.DisplayFormulaBar = False
.DisplayStatusBar = False
End With
Case False 'debloquage
With Application
.ScreenUpdating = False
For Cb = 1 To NbCb
.CommandBars(Cb).Enabled = TblCb(Cb)
Next Cb
.DisplayFormulaBar = TblEtat(0)
.DisplayStatusBar = TblEtat(1)
End With
End Select
End Sub
'----------------------------------

De plus sous Excel 2003, si tu veux empêcher que des petits malins
créent de nouvelles barres ou ajoutent des contrôles, il y a ceci :

Application.CommandBars("Toolbar List").Enabled = False
Application.CommandBars.DisableCustomize = True


"MV71" a écrit dans le message de
news:
Bonjour,
J'ai un petit souci sous Office 2003: une de mes applications masque
toutes les barres (Workbook_open).
For Each cbar In Application.CommandBars
cbar.Enabled = False
Next
et à la fin:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars.ActiveMenuBar.Enabled = True
Application.CommandBars("Formatting").Visible = True
Application.CommandBars("Standard").Visible = True
Application.DisplayFormulaBar = True
Application.DisplayScrollBars = True
Application.DisplayStatusBar = True
End Sub

Les barres sont bien rétablies, mais il manque pas mal d'options dans
les
menus, par exemple, Format ne propose plus que la cellule ou la feuille,
format conditionnel et tout le reste ont disparu.
J'ai aussi essayé d'y rajouter
Application.CommandBars.ActiveMenuBar.Enabled = True
For Each cbar In CommandBars
cbar.Enabled = True
mais ça m'affiche une infinité de barres que je dois toutes fermer une à
une sans pour autant résoudre le problème de départ : les options
manquantes.
Pour les retrouver, je dois faire une réparation d'Excel.
Comment pourrais-je modifier le code pour récupérer mon affichage
habituel complet en sortie.
Merci d'avance pour votre aide.