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

Image dynamique sur bouton-bascule

24 réponses
Avatar
Péhemme
Bonjour à Tous,

W7 - Excel 2010
Je m'arrache les cheveux sur un problème de modification dynamique de
l'image d'un bouton-bascule sur un ruban lié à une application.
Bien sûr, mes macros fonctionnent au départ de deux boutons simples, mais ce
serait plus "professionnel" avec un 'joli" bouton-bascule.
Je souhaite utiliser des imageMso (donc il n'y a rien à inventer)
Je trouve des explications sur Developpez.com mais les tutoriels sont
orientés Access et je ne trouve pas le moyen d'adapter les Callbacks pour
Excel.
Connaitriez-vous un lien qui pourrait m'aider ?
Oserai-je ? Allez, j'ose, auriez-vous un exemple à me communiquer qui
pourrait me servir de modèle ?
Merci d'avance pour tout ce que vous pourrez faire pour me sortir de mon
illettrisme.
Bien amicalement
Michel

10 réponses

1 2 3
Avatar
isabelle
bonjour Michel,

c'est celui-ci que tu as regardé ?
http://silkyroad.developpez.com/excel/callbacks/

isabelle

Le 2014-01-16 10:50, Péhemme a écrit :
Bonjour à Tous,

W7 - Excel 2010
Je m'arrache les cheveux sur un problème de modification dynamique de
l'image d'un bouton-bascule sur un ruban lié à une application.
Bien sûr, mes macros fonctionnent au départ de deux boutons simples,
mais ce serait plus "professionnel" avec un 'joli" bouton-bascule.
Je souhaite utiliser des imageMso (donc il n'y a rien à inventer)
Je trouve des explications sur Developpez.com mais les tutoriels sont
orientés Access et je ne trouve pas le moyen d'adapter les Callbacks
pour Excel.
Connaitriez-vous un lien qui pourrait m'aider ?
Oserai-je ? Allez, j'ose, auriez-vous un exemple à me communiquer qui
pourrait me servir de modèle ?
Merci d'avance pour tout ce que vous pourrez faire pour me sortir de mon
illettrisme.
Bien amicalement
Michel


Avatar
Péhemme
Merci Isabelle de t'intéresser à mon éducation.
J'ai effectivement chargé ce pdf il y a quelques jours, mais celui qui me
fait soucis est le paragraphe :
VI. Image dynamique sur un bouton bascule
de :
http://arkham46.developpez.com/articles/access/rubanimages/#LVI

Michel


"isabelle" a écrit dans le message de groupe de discussion :
lb94jh$s0i$

bonjour Michel,

c'est celui-ci que tu as regardé ?
http://silkyroad.developpez.com/excel/callbacks/

isabelle

Le 2014-01-16 10:50, Péhemme a écrit :
Bonjour à Tous,

W7 - Excel 2010
Je m'arrache les cheveux sur un problème de modification dynamique de
l'image d'un bouton-bascule sur un ruban lié à une application.
Bien sûr, mes macros fonctionnent au départ de deux boutons simples,
mais ce serait plus "professionnel" avec un 'joli" bouton-bascule.
Je souhaite utiliser des imageMso (donc il n'y a rien à inventer)
Je trouve des explications sur Developpez.com mais les tutoriels sont
orientés Access et je ne trouve pas le moyen d'adapter les Callbacks
pour Excel.
Connaitriez-vous un lien qui pourrait m'aider ?
Oserai-je ? Allez, j'ose, auriez-vous un exemple à me communiquer qui
pourrait me servir de modèle ?
Merci d'avance pour tout ce que vous pourrez faire pour me sortir de mon
illettrisme.
Bien amicalement
Michel


Avatar
Péhemme
Bonjour Isabelle,

Des nouvelles :
J'ai réussi à faire fonctionner le getImage.
Certes dans une configuration simple :
. simple bouton
. avec une icone en .gif en 16x16,
. et celle-ci logée dans le même répertoire que mon fichier de tests.
Précédemment j'essayai d'utiliser :
. sur un toggleButton
. deux icones en .png en 32x32 situées dans un autre répertoire lui-même sur
un autre disque...
Cela faisait "exploser" Excel.

Étant sur la voie, je ne doute pas de domestiquer ce toggleButton de malheur
et d'arriver à mes fins.
Je donne ainsi raison (pour le moment) à JPS (cf. une ancienne sortie à
Saulieu).

Grosses bises
Michel


"isabelle" a écrit dans le message de groupe de discussion :
lb94jh$s0i$

bonjour Michel,

c'est celui-ci que tu as regardé ?
http://silkyroad.developpez.com/excel/callbacks/

isabelle

Le 2014-01-16 10:50, Péhemme a écrit :
Bonjour à Tous,

W7 - Excel 2010
Je m'arrache les cheveux sur un problème de modification dynamique de
l'image d'un bouton-bascule sur un ruban lié à une application.
Bien sûr, mes macros fonctionnent au départ de deux boutons simples,
mais ce serait plus "professionnel" avec un 'joli" bouton-bascule.
Je souhaite utiliser des imageMso (donc il n'y a rien à inventer)
Je trouve des explications sur Developpez.com mais les tutoriels sont
orientés Access et je ne trouve pas le moyen d'adapter les Callbacks
pour Excel.
Connaitriez-vous un lien qui pourrait m'aider ?
Oserai-je ? Allez, j'ose, auriez-vous un exemple à me communiquer qui
pourrait me servir de modèle ?
Merci d'avance pour tout ce que vous pourrez faire pour me sortir de mon
illettrisme.
Bien amicalement
Michel


Avatar
Péhemme
Re-bonjour à Tous,

Selon l'avancement de mes tests, je crains que les icones en .png ne soit
pas admises par le getImage, même en 16x16.

Je m'interroge car celles en 32x32 en .png sont acceptées pour les boutons
du ruban, sachant qu'elles sont, il est vrai, chargées directement dans le
customUI lors de l'écriture du xml.
J'ai même, via Paint, transformé mes images (icones dessinées
personnellement en son temps) en .png et ainsi je les utilise pour des
boutons du ruban via, là encore, le customUI Editor.

Il me reste donc un vaste domaine à découvrir ; je suis encore loin
d'utiliser les imageMso sur mon bouton-bascule.

Si un contributeur a déjà exploré ce champ d'utilisation du ruban, qu'il
n'hésite pas à me faire part de ses réflexions.
Bonne journée à Tous
Michel
Avatar
isabelle
bonjour Michel,

contente de voir que tu avances sur ce problème, j'y travaille de mon
coté mais je n'ai rien de bien concluant pour le moment, j'ai aussi
remarqué qu'il fallait mettre la majorité des info dans le fichier .xml.
je te redonne des nouvelles des que j’obtiens une avancée.

isabelle

Le 2014-01-17 05:48, Péhemme a écrit :
Re-bonjour à Tous,

Selon l'avancement de mes tests, je crains que les icones en .png ne
soit pas admises par le getImage, même en 16x16.

Je m'interroge car celles en 32x32 en .png sont acceptées pour les
boutons du ruban, sachant qu'elles sont, il est vrai, chargées
directement dans le customUI lors de l'écriture du xml.
J'ai même, via Paint, transformé mes images (icones dessinées
personnellement en son temps) en .png et ainsi je les utilise pour des
boutons du ruban via, là encore, le customUI Editor.

Il me reste donc un vaste domaine à découvrir ; je suis encore loin
d'utiliser les imageMso sur mon bouton-bascule.

Si un contributeur a déjà exploré ce champ d'utilisation du ruban, qu'il
n'hésite pas à me faire part de ses réflexions.
Bonne journée à Tous
Michel


Avatar
Péhemme
Courage Ma Belle.
:-))
Michel


"isabelle" a écrit dans le message de groupe de discussion :
lbbot1$ik8$

bonjour Michel,

contente de voir que tu avances sur ce problème, j'y travaille de mon
coté mais je n'ai rien de bien concluant pour le moment, j'ai aussi
remarqué qu'il fallait mettre la majorité des info dans le fichier .xml.
je te redonne des nouvelles des que j’obtiens une avancée.

isabelle

Le 2014-01-17 05:48, Péhemme a écrit :
Re-bonjour à Tous,

Selon l'avancement de mes tests, je crains que les icones en .png ne
soit pas admises par le getImage, même en 16x16.

Je m'interroge car celles en 32x32 en .png sont acceptées pour les
boutons du ruban, sachant qu'elles sont, il est vrai, chargées
directement dans le customUI lors de l'écriture du xml.
J'ai même, via Paint, transformé mes images (icones dessinées
personnellement en son temps) en .png et ainsi je les utilise pour des
boutons du ruban via, là encore, le customUI Editor.

Il me reste donc un vaste domaine à découvrir ; je suis encore loin
d'utiliser les imageMso sur mon bouton-bascule.

Si un contributeur a déjà exploré ce champ d'utilisation du ruban, qu'il
n'hésite pas à me faire part de ses réflexions.
Bonne journée à Tous
Michel


Avatar
MichD
Bonjour à tous les 2,

Regardez à cette adresse,
http://www.rondebruin.nl/win/s2/win009.htm
il y a tout plein d'information avec des fichiers exemples.

Aurons-nous accès au chef-d'ouvre que vous êtes en train de réaliser?
;-))
Avatar
MichD
J'oubliais...

Un exemple de code sur ce fil sur l'appel des callback
http://www.mrexcel.com/forum/excel-questions/623535-how-reload-custom-ribbon-using-visual-basic-applications-2.html
Avatar
Péhemme
Bonjour Denis,

Merci pour les liens.
J'ai déjà celui de Ron de Bruin avec d'autres dans mes favoris pour traiter
ce sujet.
Je note le second et ne manquerai pas de m'appuyer également dessus pour
atteindre mon but.
À l'aide du tutoriel Callback également mentionné par Isabelle, je me suis
fait un fichier reprenant tous les exemples.
Ceux-ci fonctionnent et même, pour certains, après "bricolage" de ma part.
J'ai par ailleurs, dans une application développée il y a 10 ans pour le
club (Société Nautique de Bandol) remplacé ma barre d'outil par un ruban.
Cela fonctionne parfaitement bien. Pour certains callbacks je n'ai fait que
du copier/coller, pour d'autres il a fallu transformer/adapter les macros.
Naturellement, n'étant pas informaticien, je veux plus.
Il était très facile sous VBA de modifier l'ID d'un bouton en fonction de sa
position (enfoncé ou d'origine).
Avec cette nouvelle approche (xml et callbacks) "on" a peut-être gagné en
rigueur, mais on a beaucoup perdu en souplesse.
Je sais maintenant modifier le label (facile : c'est dans mes modèles) je
découvrirai comment modifier l'image.
Si j'atteins mon but, je ne manquerai pas de le faire savoir à la
communauté.
Mets le champagne au frais... :-))
Merci de ton aide et de ton soutien indéfectible.
Michel




"MichD" a écrit dans le message de groupe de discussion :
lbci64$m05$

J'oubliais...

Un exemple de code sur ce fil sur l'appel des callback
http://www.mrexcel.com/forum/excel-questions/623535-how-reload-custom-ribbon-using-visual-basic-applications-2.html
Avatar
Péhemme
Bonjour Isabelle, bonjour Denis, bonjour à Tous,

Même si "on" lui a un peu forcé la main, Denis va nous offrir le champagne !
Sonnez trompettes : j'ai atteint mon but.
Je me suis largement inspiré de la publication de SilkyRoad sur
Developpez.com intitulée :
Personnalisation du ruban: Les fonctions d'appel CallBacks.
Merci à eux.

1°) Code xml dans le customUI :
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"
onLoad="RubanCharge" >
<ribbon startFromScratch="false">
<tabs>
<tab id="Tab01" label="Test" >
<group id="Groupe01" label="Modification Image du
bouton">
<toggleButton id="ToggleButton01"
getImage="MacroChargementImage"
size="large"
tag="image_2"
getLabel="MacroGetLabel"
onAction="ModifStatutBouton" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>

2°) Dans un module stardard du fichier :
Option Explicit
Public monRuban As IRibbonUI
Public boolRésult As Boolean

'Callback for customUI.onLoad
Sub RubanCharge(ribbon As IRibbonUI)
Set monRuban = ribbon
End Sub

'Callback for ToggleButton01 getLabel
Sub MacroGetLabel(control As IRibbonControl, ByRef returnedVal)
'== Attribue une étiquette au bouton bascule en fonction de sa position = '============================================================== If boolRésult Then
returnedVal = "Bouton Désactivé"
Else
returnedVal = "Bouton Activé"
End If
End Sub

'Callback for ToggleButton01 onAction
Sub ModifStatutBouton(control As IRibbonControl, pressed As Boolean)
boolRésult = pressed
If boolRésult Then
Range("B3").Value = "Bouton enfoncé"
Else
Range("B3").Value = "Bouton en position normale"
End If
monRuban.Invalidate
End Sub

'Callback for button01 getImage
Sub MacroChargementImage(control As IRibbonControl, ByRef returnedVal)
Dim Image_1
Dim Image_2
Set Image_1 = LoadPicture _
("C:UsersMichelDesktopLe RUBAN - The
RIBBONTests_ToggleButtonadd_16x16.gif")
Set Image_2 = LoadPicture _
("C:UsersMichelDesktopLe RUBAN - The
RIBBONTests_ToggleButtondelete_16x16.gif")

If boolRésult Then
Set returnedVal = Image_2
Else
Set returnedVal = Image_1
End If
monRuban.Invalidate
End Sub

Le fichier est sur cjoint :
http://cjoint.com/?DAso3GnRYdl

Merci à Isabelle et Denis
Bonne journée
Michel
1 2 3