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

Excel 2003 : barre d'outils attaché à un classeur

5 réponses
Avatar
La Norme Française c'est pas le FN
Bonjour

j'ai une barre d'outils perso avec icone et texte.
- Cette barre d'outil est attaché à MonClasseur.xls que je distribue à
plusieurs personnes
- La barre d'outil s'affiche uniquement quand certaines feuille sont
active et les bouton sont lié aux macro
- J'ai des macro dans ce classeur


Mon problème :
Si je renomme MonClasseur.xls en MonClasseur1.xls, mes bouton ne
fonctionnent plus. J'ai droit à un message de excel comme quoi ça
vient peut être du fichier qui est renommé.
Donc, je peux recreer le liens avec le nouveau classeur, mais c'est
chiant. Y a t i il une solution pour qu'à chaque ouverture du
classeur je controle en vba si la liaison entre mes bouont de la barre
d'outils et les macro sont OK ?


Par la même occasion, je constate aussi 2 choses :
- Y a t il moyen de créer ses propres icônes sans passer par une image
? Genre envoyer un truc type base64 ou chaine de caractère (Icone
taille 16*16)

- Losrsque ma barre d'outils est affiché, si je bascule sur un autre
classeur excel, ma barre ne cache, pas. J'ai pas trouvé chose du genre
de OnLostFocus ?

Merci de votre aide.




--
« le politiquement correct ne proclame pas la tolérance ; il ne fait qu'organiser la haine. » (Jacques Barzun)
C'est une doctrine obligatoire, qui n'est en réalité que l'expression la plus autoritaire du conformisme

5 réponses

Avatar
DanielCo
Bonjour,
Est-ce que tu peux faire "enregistrer sous" au lieu de renommer ?
Cordialement.
Daniel


Bonjour

j'ai une barre d'outils perso avec icone et texte.
- Cette barre d'outil est attaché à MonClasseur.xls que je distribue à
plusieurs personnes
- La barre d'outil s'affiche uniquement quand certaines feuille sont
active et les bouton sont lié aux macro
- J'ai des macro dans ce classeur


Mon problème :
Si je renomme MonClasseur.xls en MonClasseur1.xls, mes bouton ne
fonctionnent plus. J'ai droit à un message de excel comme quoi ça
vient peut être du fichier qui est renommé.
Donc, je peux recreer le liens avec le nouveau classeur, mais c'est
chiant. Y a t i il une solution pour qu'à chaque ouverture du
classeur je controle en vba si la liaison entre mes bouont de la barre
d'outils et les macro sont OK ?


Par la même occasion, je constate aussi 2 choses :
- Y a t il moyen de créer ses propres icônes sans passer par une image
? Genre envoyer un truc type base64 ou chaine de caractère (Icone
taille 16*16)

- Losrsque ma barre d'outils est affiché, si je bascule sur un autre
classeur excel, ma barre ne cache, pas. J'ai pas trouvé chose du genre
de OnLostFocus ?

Merci de votre aide.
Avatar
MichD
Bonjour,

Au lieu d'attacher une barre d'outils attachée, pourquoi
ne pas utiliser du code. La manière de procéder n'est nullement
reliée à la modification du nom du fichier.

Le nouveau menu s'affiche seulement lorsque la Feuil1, Feuil3 et Feuil5
sont sélectionnées. Attention, dans le code, ces nominations sont
sensibles à la casse.

Voici un fichier exemple : http://www.cjoint.com/c/EFirJ0LOXHd
Avatar
La Norme Française c'est pas le FN
On Mon, 08 Jun 2015 18:00:33 +0200, DanielCo
wrote:

Est-ce que tu peux faire "enregistrer sous" au lieu de renommer ?



Moi, oui. L'utilisateur final ne se pose pas se genre de question...

Si tu pose la question, c'est que t'as une piste ?

--
« le politiquement correct ne proclame pas la tolérance ; il ne fait qu'organiser la haine. » (Jacques Barzun)
C'est une doctrine obligatoire, qui n'est en réalité que l'expression la plus autoritaire du conformisme
Avatar
MichD
Si tu préfères conserver tes barres d'outils attachées, tu peux faire
cela... Copie tout ce code dans le ThisWorkbook de ton classeur et modifie
le nom de la barre d'outils "MichD" pour celui de ton application.

N'oublie pas d'adapter le nom des feuilles dans la procédure Workbook_SheetActivate

'--------------------------------------------------------------------------------------------
Private Sub Workbook_Activate()

Dim C As CommandBarControl
On Error Resume Next
With Application.CommandBars("MichD")
.Enabled = True
.Visible = True
.Protection = msoBarNoProtection
For Each C In .Controls
C.OnAction = Replace(C.OnAction, Mid( _
C.OnAction, 1, VBA.InStrRev( _
C.OnAction, "!") - 1), ThisWorkbook.FullName)
Next
.Protection = msoBarNoCustomize + msoBarNoChangeDock
End With
End Sub
'--------------------------------------------------------------------------------------------
Private Sub Workbook_Deactivate()
With Application.CommandBars("MichD")
'.Protection = msoBarNoProtection
.Enabled = False
.Visible = False
End With

End Sub
'--------------------------------------------------------------------------------------------

Private Sub Workbook_SheetActivate(ByVal Sh As Object)

Select Case Sh.Name
'Les commandes seront disponibles seulement lorsque
'Les feuilles suivantes du classeur seront sélectionnées.
'Tu peux ajouter autant de nom d'onglet de feuille que tu désires.
Case Is = "Feuil1", "Feuil3", "Feuil5"
Call Workbook_Activate
Case Else
Call Workbook_Deactivate
End Select
End Sub
Avatar
La Norme Française c'est pas le FN
On Mon, 8 Jun 2015 13:38:40 -0400, "MichD"
wrote:

Bonjour,

Au lieu d'attacher une barre d'outils attachée, pourquoi
ne pas utiliser du code. La manière de procéder n'est nullement
reliée à la modification du nom du fichier.



Creer du code pour creer des bouton et les parametrer, je sais faire.
Je sais pas dessiner des icone (avec le code) sans passer par une
importable de fichier image

Le nouveau menu s'affiche seulement lorsque la Feuil1, Feuil3 et Feuil5
sont sélectionnées. Attention, dans le code, ces nominations sont
sensibles à la casse.



ok

Voici un fichier exemple : http://www.cjoint.com/c/EFirJ0LOXHd



merci, je regarde ça demain.
--
« le politiquement correct ne proclame pas la tolérance ; il ne fait qu'organiser la haine. » (Jacques Barzun)
C'est une doctrine obligatoire, qui n'est en réalité que l'expression la plus autoritaire du conformisme