Modifier une image via VBA

Bonjour,

J'ai créé un petit mémo avec une image et une zone de texte pour rappeler à mes collègues les fonctions disponibles dans notre fichier de travail de commun. Voici un exemple :

191021064717721212

Au départ, je modifiais les informations de cette zone de texte tous les mois avec astuce différente. Au fur et à mesure de la mise en place de nouvelles fonctions dans notre fichier, j'ai pensé à automatiser cette tâche. Je génère alors un nombre aléatoire à chaque ouverture du fichier qui modifier le commentaires situé dans la zone de texte. Toutefois, j'aimerais trouver un moyen de modifier l'image d'illustration de manière automatique afin qu'elle soit en concordance avec le texte affiché.

J'utilise déjà ce tableau pour modifier le texte, j'aimerais utiliser les mots en rouge pour faire de même avec les images :

191021065301661270

J'aimerais reproduire la manipulation suivante par VBA qu'il est possible de faire dans excel comme suis :

  • On clique droit sur l'image situé à gauche de la zone de texte
  • Dans la liste on choisi changer l'image => à partir d'un fichier
  • On sélectionne dans un dossier spécifié la nouvelle image à afficher (cette dernière respecte les dimensions de la précédente)

Concernant le nom de l'image à choisir, j'ai nommé mes fichiers de la même façon que les textes en rouge dans le tableau. Ainsi en fonction du nombre aléatoire affiché, j'aimerais récupérer l'image correspondante.

Je vous joins mon fichier test avec un dossier contenant trois images (en PNG) pour tester le changement d'image.

Merci d'avance pour votre aide

Baptiste.

13bk-images.xlsm (30.18 Ko)

Bonsoir

Je crois que le "modifier image" comme décrit n'existe pas sous VBA.

Mon idée serait de créer une image complète de votre mémo, cadre texte et image, goûtés de même taille, puis gérer leur affichage dans un objet image sous Excel ou bien un Userform1.

@ bientôt

LouReeD

Bonsoir Horusbk

Je te renvoie un de tes fichiers.

Regarde mes notes.

9bk-images.xlsm (42.92 Ko)

Bonsoir LouReeD,

J'avais essayé avec un objet image dans excel (en utilisant l'icône appareil photo de la barre d'outils d'accès rapide). Toutefois, sauf erreur de ma part j'avais aussi les couleurs derrière mon image du mémo. Si possible j'aimerais tirer partie des parties invisibles de l'image qu'offre le format PNG. Je ne sais pas si tu vois ce que je veux dire ?

Bonsoir X Cellus,

Je veux bien que tu me fasses la macro si cela ne te dérange pas (je suis au boulot et je ne pense pas avoir trop le temps de m'y pencher cette nuit). Toutefois si j'ai bien compris toutes les images que je souhaite utiliser seront superposées et seulement celle désignée par le nombre aléatoire sera affichée ?

Ce que je n'ai pas compris c'est de quelle façon les images seront reliées à un identifiant ? Par exemple ceux présents dans la colonne ID du tableau ?

Cette méthode est-elle réalisable si la macro va chercher le texte dans une feuille de classeur pour afficher le mémo avec la bonne image dans une autre feuille de classeur ?

Merci encore pour votre aide et vos explications !

Baptiste

Bonjour Horusbk,

En pièce jointe copie modifié du fichier avec macros.

Pour éviter de multiples tests (ouverture et fermeture) j'ai ajouté un bouton simulant cela.

Les commentaires ont été placés sur une feuille différente de celle des images. Voir note.

Bons tests et bonne continuation.

29bk-imagesmodif.xlsm (84.71 Ko)

Bonjour X Cellus

Merci pour ta réponse, comment as-tu lié l'image avec l'ID à chercher en fonction du nombre aléatoire qui est affiché ?

Cordialement,

Baptiste

Re-bonjour Horusbk,

Regardes les lignes de code que j'ai ajoutées. Chaque image porte un nom. Il commence par Image et finit par un numéro.

Si l'on veut par exemple liée l'image numéro 3 (Image 3) qui est celle de l'imprimante à un commentaire. Il suffit de placer le commentaire qui l'accompagne sur la ligne de l'ID 3. Et ainsi de suite pour chacune des images.

Sur l'exemple il y a 5 commentaires et donc 5 images. Pour ajouter un sixième commentaire il faudra aussi ajouter une image avec pour nom Image 6. C'est plus simple à faire avec l'ID qu'avec un texte. Sauf si ce texte est important et doit être ressorti. Par exemple en annotation avec l'image.

Mais apparemment ce n'était pas le besoin. Seul l'image comptait.

Bonne continuation.

Bonjour X Cellus,

J'ai compris, je viens d'ajouter une image que j'ai nommé 'image 6', j'ai ajouté une sixième ligne au tableau contenant les commentaires et j'ai étendu la plage de rechercheV.

Tout fonctionne parfaitement Merci pour ton aide !

Il me suffit à présent de remettre ça au propre sur mon fichier.

Bonne continuation et encore merci

Baptiste.

Rechercher des sujets similaires à "modifier image via vba"