OVH Cloud OVH Cloud

VBA+Menu+Picture

6 réponses
Avatar
Jocaste
Bonjour =E0 tous,

Lorsque je cr=E9e un menu (=E0 coter de Help), j'ai une option=20
dont je souhaite mettre un logo.=20

Je ne parviens pas =E0 voir o=F9 je fais l'erreur.
Pouriez-vous m'aider.

With CommandBars("Menu Bar").Controls("Menu").Controls
Set MenuItem =3D .Add(TypeButton)
With MenuItem
.Caption =3D "Test"
.OnAction =3D OnAction
.LoadPicture ("C:\logo.bmp")
End With
End With


Merci d'avance

6 réponses

Avatar
Geo
Bonjour Jocaste


Ca doit coincer là :
.LoadPicture ("C:logo.bmp")


car cette méthode ne s'applique pas à un CommandBarButton
Il me semble que tu pourrais essayer de copie ton image dans le presse
papier et utiliser un PasteFace.

--

A+

Avatar
Anacoluthe
Bonjour !

LoadPicture est membre de la classe StdFunctions de la
bibliothèque stdole.
Vous devez l'utiliser pour créer un objet IPictureDisp
lequel sera affecté à la propriété .Picture du bouton.
Vous brûlez les étapes avec votre Button.LoadPicture :-D ))

Anacoluthe
« Une image vaut mille mots. »
- CONFUCIUS

'Jocaste' nous a écrit ...
Bonjour à tous,

Lorsque je crée un menu (à coter de Help), j'ai une option
dont je souhaite mettre un logo.

Je ne parviens pas à voir où je fais l'erreur.
Pouriez-vous m'aider.

With CommandBars("Menu Bar").Controls("Menu").Controls
Set MenuItem = .Add(TypeButton)
With MenuItem
.Caption = "Test"
.OnAction = OnAction
.LoadPicture ("C:logo.bmp")
End With
End With


Merci d'avance


Avatar
Jocaste
Je pense que je suis perdu

J'ai fait une petit test
Dim MyPicture As IPictureDisp
Set MyPicture.Picture = LoadPicture("C:logo.bmp")
la propriéte .Picture n'existe pas.

Cela n'est pas évident pour moi.
Pouriez-vous me donner des informations complémentaires.
Mercid 'avance

-----Message d'origine-----
Bonjour !

LoadPicture est membre de la classe StdFunctions de la
bibliothèque stdole.
Vous devez l'utiliser pour créer un objet IPictureDisp
lequel sera affecté à la propriété .Picture du bouton.
Vous brûlez les étapes avec votre Button.LoadPicture :-
D ))


Anacoluthe
« Une image vaut mille mots. »
- CONFUCIUS

'Jocaste' nous a écrit ...
Bonjour à tous,

Lorsque je crée un menu (à coter de Help), j'ai une
option


dont je souhaite mettre un logo.

Je ne parviens pas à voir où je fais l'erreur.
Pouriez-vous m'aider.

With CommandBars("Menu Bar").Controls("Menu").Controls
Set MenuItem = .Add(TypeButton)
With MenuItem
.Caption = "Test"
.OnAction = OnAction
.LoadPicture ("C:logo.bmp")
End With
End With


Merci d'avance



.




Avatar
Anacoluthe
Bonjour !

'Jocaste' nous a écrit ...
Je pense que je suis perdu
J'ai fait une petit test
Dim MyPicture As IPictureDisp
Set MyPicture.Picture = LoadPicture("C:logo.bmp")
la propriéte .Picture n'existe pas.


Vous y étiez presque !!!
C'est encore plus simple. Je détaille :

Public Sub ChargerImageSurUnBouton()
Dim myPicture As IPictureDisp
Dim myButton As CommandBarButton
Set myButton = CommandBars(1).Controls(1)
Set myPicture = LoadPicture("C:MonImage.gif")
myButton.Picture = myPicture
End Sub

ou en simplifiant à l'extrême (une seule instruction !) :

Public Sub ChargerImage()
CommandBars(1).Controls(1).Picture = LoadPicture("C:MonImage.gif")
End Sub

(en principe il faut vérifier que le contrôle est un bouton)

Anacoluthe
« Une image vaut mille mots. »
- CONFUCIUS

Avatar
Jocaste
Merci beaucoup pour cette aide, mais je suis embêter car
en Office 97 cela ne fonctionne pas.
Je pense que j'aurai du le signaler mais cela m'a échappé.
J'ignore s'il y a une possibilité.

Merci d'avance.



-----Message d'origine-----
Bonjour !

'Jocaste' nous a écrit ...
Je pense que je suis perdu
J'ai fait une petit test
Dim MyPicture As IPictureDisp
Set MyPicture.Picture = LoadPicture("C:logo.bmp")
la propriéte .Picture n'existe pas.


Vous y étiez presque !!!
C'est encore plus simple. Je détaille :

Public Sub ChargerImageSurUnBouton()
Dim myPicture As IPictureDisp
Dim myButton As CommandBarButton
Set myButton = CommandBars(1).Controls(1)
Set myPicture = LoadPicture("C:MonImage.gif")
myButton.Picture = myPicture
End Sub

ou en simplifiant à l'extrême (une seule instruction !) :

Public Sub ChargerImage()
CommandBars(1).Controls(1).Picture = LoadPicture
("C:MonImage.gif")

End Sub

(en principe il faut vérifier que le contrôle est un
bouton)


Anacoluthe
« Une image vaut mille mots. »
- CONFUCIUS
.




Avatar
Anacoluthe
Bonjour !

'Jocaste' nous a écrit ...
Merci beaucoup pour cette aide, mais je suis embêter car
en Office 97 cela ne fonctionne pas.
Je pense que j'aurai du le signaler mais cela m'a échappé.
J'ignore s'il y a une possibilité.


Effectivement la propriété Picture d'un CommandBarButton
n'existe pas en WD97. La syntaxe est cependant correcte en WD97
pour un contrôle d'une UserForm (CommandButton).

Anacoluthe
« Une image vaut mille mots. »
- CONFUCIUS