Ajouter une image en fonction d'un nom sous Excel

Bonsoir,

je désirais savoir comment puis-je ajouter une photo qui sera lié a un nom dans ma base de donnée,

c'est a dire si je choisi le nom dupont dans ma liste déroulante, sa photo s'affiche aussi

Bonsoir,

Je crois qu'il va nous falloir un peu plus d'infos.

les photos se trouvent où actuellement?

Les photos doivent s'afficher où dans un contrôle image dans une cellule, une cellule fusionnée?

J'ai bossé dernièrement sur un classeur de ce type, je pourrais t'apporter certaines réponses ou solutions

Bonsoir , en se moment les photos se trouvent dans le même dossier que mon fichier excel et les photos doivent s’afficher dans le sélecteur d'image.

Je suis désolé, mais je n'arrive pas à télécharger ton fichier.

Pour faire simple, tu peux créer un cadre image et affecter un code de ce type :

Image1.Picture = LoadPicture("C:emplacement photos" & ComboBox1.Value(variable) & ".jpg(si format jpg)")

Le nom des photos devront correspondre à la variable, mot pour mot.

Tu peux peut être créer un classeur simplifié

Bonjour, j'ai essayé se que tu m as dis mais sans succes

Private Sub Image1_Click()
Dim As Agat
Image1.Picture = LoadPicture("C:\Users\kira\Desktop\ADHERENT" & ComboBox1.Value(Agat) & ".jpg(si format jpg)")
End Sub

On va pas y arriver comme ça.

Je t'ai fait un petit fichier très simple qui édite les photos dans le contrôle image selon le listing dans la combobox1.

Bien évidement ça ne peut marcher chez toi.

Il faut adapter l'adresse du fichier où se trouve les photos.

Il faut bien évidement adapter le nom des photos aux noms qui se trouvent dans la liste déroulante.

A toi de me dire.

Au pire, tu me donnes l'adresse exact des photos ainsi que le listing qui correspond à ces photos.

l'idéal étant bien évidement une bride de ton fichier

191gameslisteps3.xlsm (27.39 Ko)

Bonsoir , j'ai créé une base plus simple pour une gestion de jeux ps3

Donc id liste , le nom du jeux, l'identifiant du jeux,

je te joins le fichier excel l'ami .

Bonsoir Kira,

Fais un clic droit sur ta liste déroulante de la feuille Fiche Adhérent, tu affectes une nouvelle macro, laisse le nom proposé par Excel, puis tu remplaces la macro vide par celle-ci :

Sub Zonecombinée2_QuandChangement()
   Dim sPhoto As String
   sPhoto = Feuil7.[C31]
   If Dir(ThisWorkbook.Path & "\" & sPhoto) <> "" Then
      Feuil7.Image1.Picture = LoadPicture(ThisWorkbook.Path & "\" & sPhoto)
   Else
      Feuil7.Image1.Picture = Nothing
   End If
   ' Il faut mettre le PictureSizeMode=fmPictureSizeModeStretch pour ajuster la photo à l'objet image
   Feuil7.Image1.PictureSizeMode = fmPictureSizeModeStretch ' A faire une seule fois
End Sub

Ensuite il faut que tu charges la cellule C31 de la même façon que tu as fait les autres cellules de cette feuille.

Enfin quand tu sélectionnes un item, il affiche la photo si elle existe, sinon le contrôle image se vide.

J'ai utilisé la propriété ThisWorkbook.Path dans mon exemple en considérant que les photos sont dans le répertoire du classeur, si tu crées un répertoire pour les photos, mets le dans un sous-répertoire, tu pourras ainsi faire un truc du genre :

ThisWorkbook.Path & "\Photos\" & sPhoto. L'avantage de cette méthode, c'est que si tu déplaces le dossier, tu n'as pas besoin de repréciser l'emplacement du répertoire photo, on appelle cela un emplacement relatif.

Par contre, ton fichier est très, très, très, très gourmand en mémoire :

Il fait 10Mo sur le disque, il met plus d'une minute pour s'ouvrir chez moi, et prend 1,2Go de mémoire à l'ouverture puis prend entre 477Mo et 900Mo de mémoire (sans doute qu'il double la mémoire au moment de l'enregistrement), c'est beaucoup trop !

Pour réduire cela considérablement, tu dois comprendre ton erreur :

tu as créé base sur la feuille ABBCFD qui a près de 1000 lignes qui sont presque toutes vides et quand tu fais Ctrl+Fin, la cellule active se positionne en OJ1752, ce n'est pas normal et cela veut dire que la plage utilisée est grandement surdimensionnée par rapport au besoin. Supprime les lignes 10 jusqu'à la fin pour redimensionner la plage utilisée puis enregistre le fichier. L'ascenseur doit reprendre une taille normale en rapport avec le nombre de lignes utilisées. Ensuite transforme ta base de données en table (Insersion/table) si tu veux une ligne sur deux avec un motif de couleur.

Ce qui pose réellement un problème de mémoire, c'est la table qui est sur la feuille FATNA qui va jusqu'à la dernière ligne (plus d'un million de lignes !). Ctrl+Fin te positionnes en dernière ligne, donc méga problème !

Les tables sont auto-dimensionnables, il est inutile de prévoir des lignes vides pour un futur remplissage. Supprime les lignes de la trois jusqu'à la dernière et enregistre ton classeur. Sur mon ordinateur, il passe de 10Mo à 100ko !

Ferme Excel et rouvre le, le fichier ne met que quelques secondes à s'ouvrir et Excel ne prend que 100mo de mémoire.

Si maintenant on revient dans la feuille FATNA, et qu'on saisi un texte en B3, tu verras que la table se redimensionne en récupérant la table la ligne 3 et les cellules H3 et L3 ont bien récupérer la liste de validation de leur colonne correspondante.

Et voilà !!!

Bonsoir merci,je vais testé cela demain , et concernant la feuille fatna je n'en ai pas besoin donc je vais la supprimé

Re bonsoir , il y a quelque chose que j'ai du loupé ou j'ai mal compris,

Donc je poste une autre base comme modèle mais plus petite, une base de gestion de liste de jeux de ps3

Donc j'ai un userform avec une combobox de recherche du nom du jeux et une case à image dans cette userform,

sinon sur ma feuille j'une combobox de recherche du nom du jeux et dans ma colonne E=cover l'endroit ou doivent s afficher mais images,

Voilà donc 2 choix

Merci pour l aide de vous tous .

Bonjour, j'ai essayé mais il y a quelque chose que j'ai du loupé ou mal compris, je vous envoie se soir une base plus simple et plus petite pour un gestionnaire de jeux ps3

Dans mon userform j'ai un cadre image avec un combobox pour la recherche du nom du jeux et une fois le nom choisi l'image du jeu doit s'afficher dans le cadre image ,

Si nom sur ma feuille1 aussi il y a le même principe ,

36gameslisteps3.rar (62.00 Ko)

Bonsoir Kira,

J'ai fait les deux demandes. Pour l'image qui est sur la feuille, je suis passé par une formule avec Index, l'autre solution était de mettre la fonction dans le code VBA.

108gameslisteps3.xlsm (33.13 Ko)

Bonsoir Benoît

J'ai vue le fichier et je te remercie tout est ok,

Maintenant je vais essayé de comprendre le code pour le reproduire de moi même car le but sert à sa aussi il ne s 'agit pas recopié des code sans rien comprendre, merci l'ami et autre membre du forum ,

Par contre juste une dernière petite question , si je voulais que chaque image reste affiché dans la colonne E à en face de chaque nom qui est leur tien la photo de Batman dans la colonne E en face du nom Batman .

Merci A+

Kira

Dans ce cas il faudrait que tu aies une image par ligne, mais alors attention à la taille du classeur.

Il faudrait faire une boucle qui passe toutes les lignes en revue, si la ligne à une image et qu'elle correspond au nom du jeu, on passe, sinon si le nom de l'image est différente, alors il faut changer l'image, sinon si il n'y a pas d'image, il faut en ajouter une et enfin si image est introuvable dans le répertoire, alors on s'assure que la ligne ne comporte pas d'image...

A toi de jouer ! ? !

Salut , je te remercie , mais je pense que je vais laissé ainsi si mon la taille du classeur prendra du volume .

Merci à toi et bonne soirée .

Rechercher des sujets similaires à "ajouter image fonction nom"