OVH Cloud OVH Cloud

Attacher et surtout DETTACHER un BO

10 réponses
Avatar
JièL Goubert
Salutatous

Excel 2003, il est possible dans la personnalisation des BO d'attacher
un BO à un classeur spécifique. Jusque la ça va.
Mais la ou ça ne vas plus c'est comment on dettache cette barre d'outils
une fois le classeur fermé ?

Merci d'avance si vous avez une idée avec ou sans macro, j'aimerai
autant sans...

--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr

10 réponses

Avatar
-=lolol=-
Bonjoir© JièL,

Tu trouveras plus bas une méthode (largement inspirée de
http://frederic.sigonneau.free.fr/ rubrique barres d'outils) pour affecter
en vba une boite à outils à un classeur. Celle ci s'affiche lorsque tu
ouvres le classeur et se ferme à la fermeture. Elle se masque lorsque le
classeur n'est pas actif. Glisse tout ça dans thisworkbook est l'affaire est
faite :-)

Tout juste un bémol, dans le Private Sub Workbook_Open()
la ligne
'bo.Position = msoBarTop
bloque l'ouverture rapide du fichier (???) si une bonne âme peut me dire
pourquoi, super merci.

Cordialement
@+lolo


Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.CommandBars(NomBO).Delete
End Sub

Private Sub Workbook_Open()
Dim bo As CommandBar
On Error Resume Next
Application.CommandBars(NomBO).Delete

Set bo = Application.CommandBars.Add(NomBO)
With bo.Controls.Add(msoControlButton)
.Caption = "Gestion des Lignes"
.FaceId = 2035
.OnAction = "LanceUsfGénéral"
End With
With bo.Controls.Add(msoControlButton)
.Caption = "Colorie Planning"
.FaceId = 107
.OnAction = "CalendrierColorié"
End With
'bo.Position = msoBarTop
bo.Visible = True
End Sub

Private Sub Workbook_WindowActivate(ByVal Wn As Window)
Application.CommandBars(NomBO).Visible = True
End Sub

Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
On Error Resume Next
Application.CommandBars(NomBO).Visible = False
End Sub
Avatar
michdenis
Bonjour,

Il n'existe aucune façon par code d'enlever une barre attachée à un classeur à sa fermeture,
à moins de supprimer la barre d'outils... mais ça c'est une autre chose.

Une seule façon avec une barre attachée, c'est de faire manuellement les manipulations
inverses à sa création.


Salutations!





"JièL Goubert" a écrit dans le message de news: %23m2q$
Salutatous

Excel 2003, il est possible dans la personnalisation des BO d'attacher
un BO à un classeur spécifique. Jusque la ça va.
Mais la ou ça ne vas plus c'est comment on dettache cette barre d'outils
une fois le classeur fermé ?

Merci d'avance si vous avez une idée avec ou sans macro, j'aimerai
autant sans...

--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr
Avatar
michdenis
Bonjour Lolol,

| bo.Position = msoBarTop

Je ne vois aucune raision pourquoi c'est ligne de code te cause problème !
Elle ne devrait pas...peut-être si tu élèves le ton de la voix ...;-))


Salutations!


"-=lolol=-" a écrit dans le message de news:
Bonjoir© JièL,

Tu trouveras plus bas une méthode (largement inspirée de
http://frederic.sigonneau.free.fr/ rubrique barres d'outils) pour affecter
en vba une boite à outils à un classeur. Celle ci s'affiche lorsque tu
ouvres le classeur et se ferme à la fermeture. Elle se masque lorsque le
classeur n'est pas actif. Glisse tout ça dans thisworkbook est l'affaire est
faite :-)

Tout juste un bémol, dans le Private Sub Workbook_Open()
la ligne
'bo.Position = msoBarTop
bloque l'ouverture rapide du fichier (???) si une bonne âme peut me dire
pourquoi, super merci.

Cordialement
@+lolo


Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.CommandBars(NomBO).Delete
End Sub

Private Sub Workbook_Open()
Dim bo As CommandBar
On Error Resume Next
Application.CommandBars(NomBO).Delete

Set bo = Application.CommandBars.Add(NomBO)
With bo.Controls.Add(msoControlButton)
.Caption = "Gestion des Lignes"
.FaceId = 2035
.OnAction = "LanceUsfGénéral"
End With
With bo.Controls.Add(msoControlButton)
.Caption = "Colorie Planning"
.FaceId = 107
.OnAction = "CalendrierColorié"
End With
'bo.Position = msoBarTop
bo.Visible = True
End Sub

Private Sub Workbook_WindowActivate(ByVal Wn As Window)
Application.CommandBars(NomBO).Visible = True
End Sub

Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
On Error Resume Next
Application.CommandBars(NomBO).Visible = False
End Sub
Avatar
JièL Goubert
Bonjoir© -=lolol=-

merci lolo, j'adopte.

Je te vois partout finalement ;-)

--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr

Le 24/01/2006 13:46 vous avez écrit... :
Bonjoir© JièL,

Tu trouveras plus bas une méthode (largement inspirée de
http://frederic.sigonneau.free.fr/ rubrique barres d'outils) pour
affecter en vba une boite à outils à un classeur. Celle ci s'affiche
lorsque tu ouvres le classeur et se ferme à la fermeture. Elle se masque
lorsque le classeur n'est pas actif. Glisse tout ça dans thisworkbook
est l'affaire est faite :-)

Tout juste un bémol, dans le Private Sub Workbook_Open()
la ligne
'bo.Position = msoBarTop
bloque l'ouverture rapide du fichier (???) si une bonne âme peut me dire
pourquoi, super merci.

Cordialement
@+lolo


Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.CommandBars(NomBO).Delete
End Sub

Private Sub Workbook_Open()
Dim bo As CommandBar
On Error Resume Next
Application.CommandBars(NomBO).Delete

Set bo = Application.CommandBars.Add(NomBO)
With bo.Controls.Add(msoControlButton)
.Caption = "Gestion des Lignes"
.FaceId = 2035
.OnAction = "LanceUsfGénéral"
End With
With bo.Controls.Add(msoControlButton)
.Caption = "Colorie Planning"
.FaceId = 107
.OnAction = "CalendrierColorié"
End With
'bo.Position = msoBarTop
bo.Visible = True
End Sub

Private Sub Workbook_WindowActivate(ByVal Wn As Window)
Application.CommandBars(NomBO).Visible = True
End Sub

Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
On Error Resume Next
Application.CommandBars(NomBO).Visible = False
End Sub




Avatar
-=lolol=-
Bonjour michdenis et merci

bo.Position = msoBarTop


Je ne vois aucune raision pourquoi c'est ligne de code te cause
problème !
Elle ne devrait pas...


C'est ce que je me disais ...
Notons que ca se passe dans un classeur plutôt volumineux (grosse chagre
vba) et si la ligne est active, il finit par s'ouvrir mais met beaucoup plus
longtemps ...

peut-être si tu élèves le ton de la voix ...;-))


bof, non ... bon un peu alors !!!

c'est quoi ce bor*** ! j'en ai marre ! de toute façon excel c'est nul, ça
marche jamais .... bouh !

... arf ça y est, je m'énerve je m'énerve et ch'uis maintenant tout agacé
... je retourne à la sieste pour nettoyer tout ça !

@+lolo


Avatar
JièL Goubert
Bonjoir© michdenis

Le 24/01/2006 14:57 vous avez écrit... :
Bonjour,

Il n'existe aucune façon par code d'enlever une barre attachée à un classeur à sa fermeture,
à moins de supprimer la barre d'outils... mais ça c'est une autre chose.


ben voui, c'était une façon de faire vu que l'on peut attacher la barre,
je suppose donc qu'elle reste dispo dans la classeur même une fois
supprimé du poste, non ?

Une seule façon avec une barre attachée, c'est de faire manuellement les manipulations
inverses à sa création.


Humf... je doute sérieusement vu l'exemple de lolo.

--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr

Avatar
michdenis
Bonjour Lolol,

Essaie dans ta procédure dans un nouveau classeur...
Est-ce que tu as toujours le même problème ?
Sinon, il faut chercher dans l'environnement
du classeur quelque chose qui éventuellement
bloquerait l'exécution de cette ligne de code.

(aucun problème sous excel 2003)


Salutations!


"-=lolol=-" a écrit dans le message de news: %
Bonjour michdenis et merci

bo.Position = msoBarTop


Je ne vois aucune raision pourquoi c'est ligne de code te cause
problème !
Elle ne devrait pas...


C'est ce que je me disais ...
Notons que ca se passe dans un classeur plutôt volumineux (grosse chagre
vba) et si la ligne est active, il finit par s'ouvrir mais met beaucoup plus
longtemps ...

peut-être si tu élèves le ton de la voix ...;-))


bof, non ... bon un peu alors !!!

c'est quoi ce bor*** ! j'en ai marre ! de toute façon excel c'est nul, ça
marche jamais .... bouh !

... arf ça y est, je m'énerve je m'énerve et ch'uis maintenant tout agacé
... je retourne à la sieste pour nettoyer tout ça !

@+lolo


Avatar
-=lolol=-
Bonjour JièL,

Je te vois partout finalement ;-)


... je te surveille ...
;-)

@+lolo

Avatar
-=lolol=-
Bonjour michdenis,

Essaie dans ta procédure dans un nouveau classeur...
Est-ce que tu as toujours le même problème ?


J'ai déjà essayer ça ... le problème semble ne pas apparaitre dans un
nouveau classeur, je ne comprends pas. Pourtant il est certain que dans le
classeur en question la ligne fait coller l'ouverture copieusement
Sans trop d'importance (j'ai apostropher la ligne)

merci
@+lolo

Avatar
michdenis
Une seule façon avec une barre attachée, c'est de faire manuellement les manipulations
inverses à sa création.


| Humf... je doute sérieusement vu l'exemple de lolo.


Si tu as quelques lignes de code sous le coude qui "attachent"
ou "détachent" des barres d'outils à un classeur, tu devrais
les publier au lieu d'y aller d'insinuations...

On ne construit pas grand chose avec des insinuations...
mais des lignes de code fonctionnelles sur le sujet ... ça m'intéresse


Salutations!