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
Péhemme
En complément du dossier zippé sur cjoint :
. outre le fichier test, il contient les 2 icones utilisées.
. il est impératif que ces icones se trouvent dans le même répertoire que le
fichier
. les chemins mentionnés en "dur" dans les macros sont naturellement à
adapter :
Set Image_1 = LoadPicture _
("C:UsersMichelDesktopLe RUBAN - The
RIBBONTests_ToggleButtonadd_16x16.gif")
Set Image_2 = LoadPicture _
("C:UsersMichelDesktopLe RUBAN - The
RIBBONTests_ToggleButtondelete_16x16.gif")

Je commence à mieux construire mes rubans.
Occupe-toi d'Amélie et Laisse flotter les rubans !... qu'ils disaient ...
;-))
Michel
Avatar
MichD
Bonjour Michel,

Et bien merci pour ce fichier exemple et bravo cela fonctionne très bien!

Maintenant, comment faire pour insérer les 2 images à l'intérieur du fichier
Excel. Je suis certain que c'est une affaire de rien!!! ;-)))

Une suggestion : Tu peux remplacer ceci :
("C:UsersMichelDesktopLe RUBAN - The
RIBBONTests_ToggleButtonadd_16x16.gif")

Par :
(ThisWorkbook.path & "Tests_ToggleButtonadd_16x16.gif")

Cela évite d'aller modifier la ligne de code...
Avatar
Péhemme
Mon Cher Denis,

Maintenant, comment faire pour insérer les 2 images à l'intérieur du
fichier
Excel. Je suis certain que c'est une affaire de rien!!! ;-)))


:-((
Ben : non... ch'ai pas faire :-(((
1°) Je ne l'ai jamais fait (sauf mes icones perso que je récupérais par un
Copy/PasteFace)
2°) et quand bien même, comment ensuite récupérer l'image dans le callback ?

(ThisWorkbook.path & "Tests_ToggleButtonadd_16x16.gif")


Et maintenant, je me fait remonter les bretelles... ;-)))
Oui, tu as raison... J'ai péché par orgueil car je ne voulais pas attendre
davantage pour que tu puisses ouvrir la (les) bouteille(s) de champagne.
Maintenant c'est fait (la correction de la macro, pas le champagne)

Une information complémentaire, dans le xml, les propriétés imageMso et
getImage sont incompatibles.
Il est donc impossible (sauf peut-être des gourous) d'écrire des callbacks
qui permettraient de modifier les imageMso d'un bouton.

D'autre part, j'avais l'impression d'être limité en taille d'image. Ce n'est
pas le cas.
J'ai des tests utilisant des 128x128 ; il faut simplement veiller à utiliser
des .gif , ce qui, je me répète, est étonnant car pour les icones chargées
dans le customUi les .png sont acceptés (va comprendre ?..)

et bravo cela fonctionne très bien!


Merci de tes encouragements.

Bon dimanche
Michel


"MichD" a écrit dans le message de groupe de discussion :
lbem7n$h13$

Bonjour Michel,

Et bien merci pour ce fichier exemple et bravo cela fonctionne très bien!

Maintenant, comment faire pour insérer les 2 images à l'intérieur du fichier
Excel. Je suis certain que c'est une affaire de rien!!! ;-)))

Une suggestion : Tu peux remplacer ceci :
("C:UsersMichelDesktopLe RUBAN - The
RIBBONTests_ToggleButtonadd_16x16.gif")

Par :
(ThisWorkbook.path & "Tests_ToggleButtonadd_16x16.gif")

Cela évite d'aller modifier la ligne de code...
Avatar
Péhemme
Oups !
lire : je me fais remonter les bretelles...
Michel


"MichD" a écrit dans le message de groupe de discussion :
lbem7n$h13$

Bonjour Michel,

Et bien merci pour ce fichier exemple et bravo cela fonctionne très bien!

Maintenant, comment faire pour insérer les 2 images à l'intérieur du fichier
Excel. Je suis certain que c'est une affaire de rien!!! ;-)))

Une suggestion : Tu peux remplacer ceci :
("C:UsersMichelDesktopLe RUBAN - The
RIBBONTests_ToggleButtonadd_16x16.gif")

Par :
(ThisWorkbook.path & "Tests_ToggleButtonadd_16x16.gif")

Cela évite d'aller modifier la ligne de code...
Avatar
MichD
Merci pour ces infos. Supplémentaires!

Il y a le livre "Excel 2007 Vba Programmers Reference" de
John Green, Stephen Bullen, Rob Bovey, Michael Alexander
qui consacre quelques chapitres sur le "ruban".

Pour avoir la liste des MsoImage, regarde ce fichier :
http://cjoint.com/?DAtm0mTlxJJ
Regarde sous l'onglet "développeur" à l'extrême droite, tu n'as qu'à cliquer
sur une
image dans le sous-menu des "Gallery" pour obtenir son "nom". Il y a environ
2500
images (icônes) possibles!

Effectivement, ton effort mérite du champagne, mais ici au Québec nous ne
fabriquons
que du vin, semble-t-il, assez bon. Cependant, mes connaissances sont assez
limitées
dans ce domaine! Bonne dégustation.

;-))
Avatar
Péhemme
Denis, c'est formidable.
Quand je me suis lancé dans "le ruban", il y a très longtemps (1 semaine, 10
jours maximum), je cherchais l'équivalent du petit outil qu'avait développé
en son temps John Walkenbach qui m'a été fort utile pour mes barres d'outils
sous Excel 97 puis 2003.
J'ai cherché à charger l'outil de Microsoft que la plupart des sites
proposent mais je n'ai jamais été assez adroit pour le rendre opérationnel
tel que je l'entendais.
J'ai donc chargé du site de Ron de Bruin un outil qui rend des services mais
qui n'est pas très souple d'utilisation.
Très gentiment DanielCo m'avait suggéré de récupérer les noms des imageMso
via la "personnalisation du ruban" ; cette solution était souple et
efficace.
Ce que je viens de charger suite à ta proposition, répond parfaitement à mes
attentes. Mille mercis et je l'adopte.
Sans vouloir vendre la peau de l'ours avant de l'avoir tuée, je vais
redevenir "le" spécialiste des barres d'outils , oh pardon, du ruban (si je
ne fais pas de compliments, qui le fera ?) ;-))) ... Il faut d'abord que je
transpose tout ce que j'ai pu écrire ces 15 dernières années.
Un commentaire cependant, lors du chargement, Excel m'informe d'une erreur à
la ligne 1519 colonne 76.
Me rendant dans le xml j'observe à cette adresse : HeaderFooterInsert... je
ne vois rien qui puisse provoquer une erreur... Sais-tu de quoi il s'agit ?
Je mets sur cjoint le message : http://cjoint.com/?DAtqhGeVVVw
Cela dit, il suffit de cliquer sur Ok pour que tout s'installe correctement.
J'ai bien noté les coordonnées de l'ouvrage que tu m'as mentionné. Je
remonte mercredi à Versailles et ne manquerai pas de me le procurer auprès
de la FNAC (publicité non rémunérée).
En attendant, merci pour tout, merci à Isabelle, DanielCo, Jacky,
Jacquouille, Lsteph ainsi qu' à tous ceux qui m'aident à longueur d'année.
Je continue d'apprendre et ne désespère pas qu'un jour je commencerai à
connaitre quelque chose sur Excel.
Bien amicalement
Michel
ps : ne t'inquiète pas pour le champagne, il ne manquera pas d'occasions
d'en boire avant ta venue en France :-))



"MichD" a écrit dans le message de groupe de discussion :
lbgf37$ca9$

Merci pour ces infos. Supplémentaires!

Il y a le livre "Excel 2007 Vba Programmers Reference" de
John Green, Stephen Bullen, Rob Bovey, Michael Alexander
qui consacre quelques chapitres sur le "ruban".

Pour avoir la liste des MsoImage, regarde ce fichier :
http://cjoint.com/?DAtm0mTlxJJ
Regarde sous l'onglet "développeur" à l'extrême droite, tu n'as qu'à cliquer
sur une
image dans le sous-menu des "Gallery" pour obtenir son "nom". Il y a environ
2500
images (icônes) possibles!

Effectivement, ton effort mérite du champagne, mais ici au Québec nous ne
fabriquons
que du vin, semble-t-il, assez bon. Cependant, mes connaissances sont assez
limitées
dans ce domaine! Bonne dégustation.

;-))
Avatar
MichD
Tu as probablement un problème de syntaxe sur cette ligne.

Regarde à cette adresse le dernier message d'Andy Pope, il donne un exemple
simple d'une syntaxe qui peut poser problème!
http://www.excelforum.com/excel-general/728509-error-loading-custom-ui-xml.html

Je peux difficilement t'en dire plus sur la syntaxe de ce langage!
Avatar
MichD
Regarde spécifiquement comment il écrit le chemin d'un fichier :

Il a fait disparaître le ":" après le lecteur

C_temp_test.xlsm_test1"
Avatar
Jacquouille
Bonsoir Michel,
Tu as bien fait de t'accrocher.
Le Sud de la France est une affaire de spécialistes:
JPS était un spécialiste du bouton et toi du ruban ....
Fameuse mercerie, tout cela. -))
Excel mène à tout !

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Péhemme" a écrit dans le message de groupe de discussion :
lbgrn8$bva$

... je vais redevenir "le" spécialiste des barres d'outils , oh pardon, du
ruban (si je
ne fais pas de compliments, qui le fera ?) ;-)))
Avatar
Péhemme
Pardon d'avoir coupé le son, mais hier soir, c'était la cata.
Nous sommes à près de 300 m d’altitude, à 15 m du ruisseau et à 2 restanques
au-dessus lui même à 3 m en dessous de la première restanque.
Notre maison est construite sur la restanque la plus haute.
Il a beaucoup plu tout ce mois de décembre. Ces trois derniers jours, il est
tombé l’équivalent de 2 mois de pluie.
Les terres étaient gorgées d’eau et hier matin, en descendant au village il
m’a fallu faire demi-tour suite à des éboulements...
La configuration de notre terrain fait que le ruisseau et ces 2 restanques
se rejoignent à l’entrée de celui-ci loin au fond du terrain (en fait il le
délimite).
Hier, j'étais sur le site indiqué par Denis, et en l’espace de 5 mn, ce
ruisseau a débordé de telle sorte qu’une partie de eaux passe sur la
restanque haute qui in fine remplit la fosse septique et qui s’écoule donc
par la maison (fonctionnement inverse du sens normal).
Ma pompe, achetée récemment est supposée débiter 4 m3/h, celle de ma femme
de ménage, venue nous aider hier soir, de 2 m3/h ne ralentissaient même pas
l’écoulement... ma chambre, ma salle de bains, mon bureau étaient sous 3 cm
d’eau.
Les pompiers débordés (mauvais jeu de mots) par les dégâts causés aux
maisons du village nous ont dit qu’il ne pouvaient pas s’occuper de nous.
Heureusement, nous connaissons une personne à la tête d’une entreprise d’assainissement
qui a eu la gentillesse de venir nous mettre une “vraie” pompe de 60 m3/h
dans la fosse septique.
Ainsi, après nettoyage de la maison nous avons pu nous coucher au sec passé
les 1h du matin.
La pluie a maintenant cessé.
Étant surpris que ce ruisseau puisse monter de 5 m, nous avons découvert en
fin de matinée l'origine de ce phénomène : la mairie n'avait pas fait curer
la buse présente à plusieurs mètres en amont de mon terrain. Cette buse
dégagée des différents débris qui la bouchaient a de nouveau rempli son
rôle.
Le ruisseau a quitté mon terrain... Il n'y a plus qu'à attendre que le temps
et la gravitation fassent son œuvre.
Pour la petite histoire, ce soir, me rapprochant de mon ordinateur, il était
toujours allumé et pointé sur le site indiqué par Denis. :-))
Ne m'en veuillez pas, j'arrête mes élucubrations pour le moment et ne les
reprendrai qu'après :
1°) avoir repris mes esprits
2°) réglé les questions administratives qu'entraine cette situation
Bonne journée
Michel

"MichD" a écrit dans le message de groupe de discussion :
lbh2n7$uh0$

Regarde spécifiquement comment il écrit le chemin d'un fichier :

Il a fait disparaître le ":" après le lecteur

C_temp_test.xlsm_test1"
1 2 3