Afficher les images dynamiques selon la valeur d'une cellule

Bonjour à tous,

Je n'y connais rien en VBA mais j'imagine que ma demande sera plus facile à traiter qu'avec des formules. Voilà mon problème :

J'ai une liste déroulante de produits chimiques pour lesquels je dois afficher les pictogrammes de dangers correspondants (inflammable, corrosif, etc.).

Sauf que la liste étant très longue, je n'ai ni le temps ni l'énergie de le faire à la main, et le faire avec les formules c'est long et assez compliqué.

J'ai donc créer dans une feuille à part un tableau de source avec la liste des produits chimiques et la ou les mention de dangers correspondant dans la colonne à côté (inflammable, corrosif, etc.) et dans une 2e feuille j'ai mis les images correspondant aux mentions de dangers.

Ma demande est : est-ce possible de faire afficher les images correspondants aux dangers lorsque je viens sélectionner un produit chimique dans ma liste déroulante ? Si oui, auriez-vous une solution ?

Je vous ai mis un fichier Excel pour exemple afin que vous puissiez mieux comprendre et modifier à votre convenance (les données sont aléatoires, ne vous étonnez pas des pictogrammes de dangers).

7macro-test.zip (774.57 Ko)

Dans l'attente de vos retours.

Merci !

Bonjour,
Un exemple avec RechercheX.
Cdlt.

6macro-test.xlsx (42.10 Ko)

Bonsoir Jean-Eric,

C'est exactement ce que je voulais merci ! Je ne connaissais pas du tout cette méthode !

Peux-tu me dire précisément ce que tu as modifié ? Je vois que tu as touché aux images dans la 3e feuille (sachant que j'aurai plus de pictogrammes dans la source données).

Pour résumer, peux-tu me donner les étapes que tu as suivi stp ?

Je te remercie d'avance.

Hello, j'ai été confronté au même problème.

J'ai une solution qui ne marche pas du tout avec des images mais bien avec des pictos...

Elle est un peu longue à mettre en place, mais une fois que c'est fait, c'est réutilisable et très rapide à utiliser.

Dans mon cas il s'agissait de noms d'associations et il fallait que j'affiche le logo correspondant.

Le principal problème est que c'est monochrome et perd toutes les couleurs.

L'idée est (vu que j'avais la majorité des logos en vectoriel) de créer une police de caractère avec FontForge.

Je vois que tes pictos viennent de Wikipedia où ils sont trouvables en SVG, donc en vectoriel.

J'ouvre ce SVG dans InkScape :

image

Dans ce cas, on peut voir en bas de l'écran qu'il y a un "groupe" de 3 objets.

Cela vient du fait que le picto a un fond blanc qu'il faut supprimer. Pour dégrouper, faire MAJ-CTRL-G.

On sélectionne ensuite le fond blanc et on le supprime...

On définit donc une taille arbitraire (200mm de largeur c'est très bien) en haut de l'écran, en faisant attention à ce que le cadenas soit activé :

image

On sélectionne tout (CTRL-A) et on copie en mémoire.

Dans FontForge, je créé une nouvelle police et ouvre la lettre "A" où je fais un simple "coller" :

image

et ainsi de suite pour tous les pictos... Attention, au fur et à mesure de la réalisation des pictos, je vois que le gars qui les a faits en a eu marre et même si visuellement les mêmes, ils n'ont pas la même taille, sont réalisés avec différentes techniques prenant moins de temps mais "moins propres". Il a donc fallu utiliser de manière un peu plus pointue inkscape... (Mais c'est un très bon logiciel à découvrir)

Une fois fait, je nomme ma police (menu "Element" - "Infos police") :

image

et je la génère. Il est possible de générer des polices dans de nombreux formats. Pour windows il faut choisir "True Type" qui génèrera un fichier .TTF :

image

Une fois, je l'installe en double cliquant sur le fichier TTF :

image

Je relance Excel et cette police est accessible.

Du coup :

image

devient :

image

Une fois le tableau complété, je donne un nom à chaquelle colonne : "SGH" pour la liste des SGH et "Pictos" pour la liste des pictos :

image image

De là je modifie la feuille "Mention de danger" :

image

La lettre donnée correspond donc à la lettre utilisée dans la police "picto".

Je créé une colonne qui joint toutes les lettres avec un espace.

Pour la facilité, je nomme mes colonnes :

image image

Et dans la feuille "Liste déroulante", je ne fais appel qu'à une seule colonne qui affiche tous les pictos :

image Demande moi en MP le lien pour tous les fichiers car je ne peux pas le partager ici.

Re,
La seule manipulation réalisée.
Nécessite 365.
Cdlt.

capture d ecran 2024 01 28 213214

Hello :)

Oui, j'utilisais cette méthode avec Google Sheets et Office 365.

Vu la demande VBA, je n'ai pas pensé à 365, je ne savais pas que c'était maintenant compatible.

Mais le problème des images est que ça prend de la place et que ça ne fonctionne qu'avec 365 :(

bonjour SaidZ,VanderlindtMarc,Jean-Eric,

pour des versions<365

2macro-test-1.zip (1.09 Mo)
Rechercher des sujets similaires à "afficher images dynamiques valeur"