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

Le
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.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #18570021
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.


MV71
Le #18569991
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.




MV71
Le #18570311
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.




michdenis
Le #18570301
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" 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.


MV71
Le #18570681
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" 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" 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.





isabelle
Le #18571041
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.







michdenis
Le #18571211
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"
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" 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" 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.





MV71
Le #18571471
Oui papa
Merci quand même.

"michdenis" 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" 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" 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" 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.







Publicité
Poster une réponse
Anonyme