ré-effacer toutes les barres en activate

copayo

XLDnaute Occasionnel
Bonjour,

Je tourne en rond !!

le principe est d'avoir 2 fichier ouvert simultanement, l'un est celui que je joint l'autre peu importe.

Quand j'ouvre mon fichier je fais disparaitre toutes les barres sauf 1 que je crée. A LA FERMETURE DU FICHIER TOUT REDEVIENT NORMAL : SUPPRESSION DE LA BARRE CREE ET AFFICHAGE DE TOUTES LES BARRES D'ORIGINE

Quand je change de fichier je fais réapparaitre toutes les barres sauf la mienne, ca marche sans soucis

quand je retourne sur mon fichier toutes les barres sont affichées y compris la mienne. J'aimerais simplement faire disparaitre toutes les barres d'origine et faire apparaitre la mienne (situation de l'ouverture en fait = workbook open).
Je trouve pas le code pour le workbook activate.

Je joins le fichier si une ame charitable a une solution j'économiserai des cheveux !!

Merci par avance, vous pouvez regarder sans activer les macros !!

[file name=test_barre_outil_unique.zip size=9129]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/test_barre_outil_unique.zip[/file]

Message édité par: copayo, à: 18/01/2006 16:42
 

Pièces jointes

  • test_barre_outil_unique.zip
    8.9 KB · Affichages: 23

jeromegmc

XLDnaute Occasionnel
Salut,

Essayes WindowActivate:

Code:
Private Sub Workbook_WindowActivate(ByVal Wn As Window)

code pour activer tes barres

End Sub


et WindowDesactivate:

Code:
Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)

Code pour réactiver les barres par défauts

End Sub

A+

Message édité par: jeromegmc, à: 18/01/2006 16:33
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour

Sans regarder ton fichier je ne sais pas si tu auras beaucoup de réponses.

En effet faisant parti de la S.P.B.O. (Société Protectrice des Barres d'Outils, dont Thierry est le fondateur) comme quelques membres éminents de ce forum, nous avons eu tellement de post pour remettre les barres d'outils disparus en place que le conseil est généralement : 'ON NE TOUCHE PAS AUX BARRES D'OUTILS'

Donc désolé mais dans ce cas là je n'interviens même pas

Bonne soirée
 

copayo

XLDnaute Occasionnel
Je comprends pascal,

merci quand meme,

je voudrais en fait créer un fichier avec une seul barre contenant les fonctions que je veux et des que je sors de ce fichier je veux etre dans un environnement classique.

Aurais tu un exemple de fichier de ce type, je veux bien prendre le risque
 

jeromegmc

XLDnaute Occasionnel
Re,

Désolé Pascal76 d'avoir donné la réponse à Copayo, mais je ne suis pas d'accord avec toi, perso j'ai un paquet de barres outils sous Excel avec plein de boutons supplémentaires dans chaque barre outils, donc lors d'utilisation d'un 'soft VBA' c'est sympa de vider l'écran de toutes ces barres outils.


A+

Et sans rancune...
 

copayo

XLDnaute Occasionnel
merci jerome mais ca n'a pas marché !!

Sinon je vais simplifier ma demande avec le code ci dessous et sans fichier (pour le respect que j'ai pour le SPBO , d'ailleurs votez SPBO en 2007)

Dim CmdB As CommandBar
For Each CmdB In Application.CommandBars
CmdB.Enabled = False
Next CmdB

En gros ca masque tout ! le problème c que je veux faire une exception dans ce code pour ma barre perso??
 

jeromegmc

XLDnaute Occasionnel
Re, Re,

Pour que ça marche il faut coller le code dans 'thisworkbook'.

Sinon tu peux fermer les barres outils une par une, voici le code pour fermer les barres outils 'standard' et 'mise en forme'

Code:
    Application.CommandBars('Standard').Visible = False
    Application.CommandBars('Formatting').Visible = False


A+
 

copayo

XLDnaute Occasionnel
je l'ai fait, mais ca donne le meme resultat,


Le principe c que je ne sais pas quelles seront les barres affichées par les utilisateurs donc je masque tout !!

si tu veux ca donne ca :

ouverture :
suppression de toutes les barres
creation de ma barre

changement de fichier excel
affichage de toutes les barres
masque la barre perso

retour au fichier
efface toutes les barres
affiche barre perso

sortie du fichier :
affiche toutes les barres
SUPPRIME barre perso

la ou je bug c retour au fichier

car ma macro tourne en rond je crois.

Private Sub Workbook_Activate()
On Error Resume Next
Application.CommandBars('TEST BARRE').Visible = True
Dim CmdB As CommandBar
For Each CmdB In Application.CommandBars
CmdB.Enabled = False
Next CmdB

End Sub
 

jeromegmc

XLDnaute Occasionnel
...,


Moi je le verais comme ça, dans thisworkbook:


Code:
Private Sub Workbook_Open()
'ouverture:
'suppression de toutes les barres
'creation de ma barre
End Sub

Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
'changement de fichier excel
'affichage de toutes les barres
'masque la barre perso
End Sub

Private Sub Workbook_WindowActivate(ByVal Wn As Window)
'retour au fichier
'efface toutes les barres
'affiche barre perso
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'sortie du fichier :
'affiche toutes les barres
'SUPPRIME barre perso
End Sub

Dis moi si ça marche...
 

copayo

XLDnaute Occasionnel
excuse moi mais je perçois pas la nuance. LA différence entre activate et window activate c quand on change de logiciel non ?

le truc que je comprends pas aussi c que le code que je citais c l'inverse du code deactivate qui lui fonctionne !!!

Deactivate =
Private Sub Workbook_Deactivate()
On Error Resume Next
Application.CommandBars('TEST BARRE').Visible = False
Dim CmdB As CommandBar
For Each CmdB In Application.CommandBars
CmdB.Enabled = True
Next CmdB

End Sub

et activate =
Private Sub Workbook_Activate()
On Error Resume Next
Application.CommandBars('TEST BARRE').Visible = true
Dim CmdB As CommandBar
For Each CmdB In Application.CommandBars
CmdB.Enabled = False
Next CmdB

End Sub
 

Dan

XLDnaute Barbatruc
Re,

Là j'ai revenir.
Copayo, sur la messagerie privée XLD je t'avais demandé de mettre un petit message conseillant de n'ouvrir ton fichier que en désactivant les macros . Dommage que tu ne l'as pas fait car l'ouverture de ton fichier fait en sorte que ta barre reste en permanence sur Excel. Raison pour laquelle Pascal76 te fait son message et je me doutais bien que tu aurais à juste titre ce commentaire.
Là maintenant, chaque forumeur va devoir bidouiller pour ne plus avoir cette barre. Bon celui qui sait comment faire c'est OK mais celui qui ne le sait ou ne fais pas attention aura cette barre en permanence dans excel même si elle n'est pas apparente.

Ce que tu dois faire en premier lieu c'est :
1. supprimer le code ci-dessous dans toutes les macros où cela se trouve:
Code:
Dim CmdB As CommandBar
For Each CmdB In Application.CommandBars
CmdB.Enabled = True
Next CmdB

2. Dans Private Sub Workbook_Open() rajouter ce code après DIM
Code:
Application.DisplayFullScreen = True
Application.CommandBars('Full Screen').Visible = False

3. Dans Private Sub Workbook_BeforeClose(Cancel As Boolean) :
Supprimer ON error resume next et rajouter :
Code:
Application.DisplayFullScreen = False
Application.CommandBars('Full Screen').Visible = False
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re

Jerome tu as tout à fait le droit de ne pas être d'accord avec moi et je parlais pour moi et pour les habitués du forum.

Mais si tu veux un peu de lecture je t'encourage à lire ces quelques posts (liste non exhaustive) où tu me verras régulièrement donner un lien pour permettre la 'réparation', d'où mon post ....

Lien supprimé

Lien supprimé

Lien supprimé

Lien supprimé

Lien supprimé

Lien supprimé

Lien supprimé

Lien supprimé

Lien supprimé

Lien supprimé

Lien supprimé

Lien supprimé

Bonne lecture et bonne soirée

Message édité par: Pascal76, à: 18/01/2006 19:11
 

copayo

XLDnaute Occasionnel
Pour clôturer ce fil,

j'ai retenu en me rangeant à l'expérience des pros :

Application.DisplayFullScreen = True
Application.CommandBars(1).Enabled = False

Avec l'inverse pour close et deactivate

Voili voila encore merci à tous les contributeurs
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 337
Membres
103 191
dernier inscrit
camiux