VBA - Charger une image en fonction de la valeur d'une combobox [Résolu]

Signaler
Messages postés
24
Date d'inscription
jeudi 4 août 2011
Statut
Membre
Dernière intervention
24 août 2011
-
Messages postés
24
Date d'inscription
jeudi 4 août 2011
Statut
Membre
Dernière intervention
24 août 2011
-
Bonjour a tous,

Voici mon probleme (je suis dessus depuis de nombreuses heures ):
j'ai une combobox (ComboBox1) avec le nom de differentes villes. Je voudrais lorsque je choisi une ville dans la combobox , il y ai l'image de la ville qui apparaisse dans mon cadre image (Image1).

Les images ont excatement le meme nom que la ville.

Mes images se situent dans une feuille de mon Excel nomme "City".
Si cela est plus simple je peux mettre mes images dans un dossier sur mon disk C

Merci de votre aide

16 réponses

Messages postés
94
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
30 octobre 2011

Bonjour

Désolé, mais en relisant tes messages, je m'aperçois que ta combobox et ton image se situent dans une userform et non pas dans une sheet.

Je pense que ce code devrait mieux fonctionner:

Private Sub ComboBox1_Click()
Filename = ThisWorkbook.Path & "" & ComboBox1.Text & ".GIF"
Image5.AutoSize = True
Image5.Picture = LoadPicture(Filename)
End Sub

Tiens moi au courant, mais je pense être sur la bonne piste.

C'est vrai que la nuit porte conseil!!!
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
6
Bonjour,

Et qu'as tu donc essayé comme code?
Postes-le pour que les membres puissent le modifier et te conseiller

L'expérience, c'est une connerie par jour, mais jamais la même..
Messages postés
94
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
30 octobre 2011

Bonjour,

Je pense que ce site peut t'aider.

http://boisgontierjacques.free.fr/pages_site/lesimages.htm#choixPhoto

Cordialement

Gérard
Messages postés
24
Date d'inscription
jeudi 4 août 2011
Statut
Membre
Dernière intervention
24 août 2011
1
Bonjour lolokun et Gerard,

merci pour vos reponses.

Desole c'est la premiere fois que je poste quelque chose sur un forum ! Donc je suis partie sur le meme code que pour charger un graphique en fonction de la valeur de la combobox. Car lorsque je choisi une valeur dans la combobox je doit faire apparaitre a la fois un graphique et une image de la ville (donc pour le graphique ca fonctionne a merveille mais pas pour l'image)

Private Sub ComboBox1_Change()
Set CurrentChart = Sheets("Graphic").ChartObjects(ComboBox1.Column(0)).Chart
Filename = ThisWorkbook.Path & "\temp2.gif"
CurrentChart.Export Filename:=Filename, FilterName:="GIF"
Image1.AutoSize = True
Image1.Picture = LoadPicture(Filename)
End sub

Sauf que a la place j'ai mis ca:

Private Sub ComboBox1_Change()
Set CurrentPicture = Sheets("City").ChartObjects(ComboBox1.Column(0)).Chart
Filename = ThisWorkbook.Path & "\temp3.gif"
CurrentCPicture.Export Filename:=Filename, FilterName:="GIF"
Image5.AutoSize = True
Image5.Picture = LoadPicture(Filename)
End sub

Gerard, j'ai teste le lien que tu m'a envoye mais je ne trouve pas la solution pour l'adapter a mon cas. En effet, tous mes elements ce situe dans un USF et non dans une sheet.

Merci de votre aide
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
6
Bonjour,

As-tu juste essayé en ayant enregistré l'image sur ton disque dur?
Peut-etre s'agit t'il uniquement d'un pb de rafraichissement.

L'expérience, c'est une connerie par jour, mais jamais la même..
Messages postés
94
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
30 octobre 2011

Rebonjour,

Dans ton code tu as mis CurrentCPicture au lieu de CurrentPicture.

Ceci dit, je pense qu'il doit avoir un autre problème dans ton code.
Mais lequel?

Je continue à chercher.
Messages postés
24
Date d'inscription
jeudi 4 août 2011
Statut
Membre
Dernière intervention
24 août 2011
1
Merci de votre reactivitee !!

Oui en effet, Gerard, j'ai oublie le C dans mon code mais ca ne fonctionnement pas non plus.

Donc, l'idee de lolokun me convient si vous pouvez me proposer un code (car pour le coup je n'ai aucune idee, je debute dans le VBA !!).
L'idee serait donc de dl les images stockees sur mon disk. Les images sont enregistrees dans le meme dossier que mon doc Excel et portent exactement le meme nom que les villes a selectionner dans ma combobox.
Le but serait donc de dl l'image dans le cadre Image5 de ma USF correspondant a la ville que j'ai selectionnee dans ma CommboBox1.

Merci beaucoup de votre aide !!!!!
Messages postés
94
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
30 octobre 2011

Ce code fonctionne chez moi, si j'ai bien compris ce que tu attendais.

Private Sub ComboBox1_Change()

Filename = ThisWorkbook.Path & "" & Sheets("City").ComboBox1.Column(0) & ".GIF"
Image5.AutoSize = True
Image5.Picture = LoadPicture(Filename)

End Sub

Tiens nous au courant

Cordialement
Messages postés
24
Date d'inscription
jeudi 4 août 2011
Statut
Membre
Dernière intervention
24 août 2011
1
Desole mais il ne fonctionne pas chez moi !

je l'ai inserer dans le code de ma combobox (sachant que j'ai deja le code pour faire apparaitre mon graphique).

Et il me mets
Run-time error '438' : Object doesn't suppport this property or method


rrrr,

Merci de votre aide
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
6
Bonjour,

Je ne suis pas expert en vba, mais cette ligne-là ne devrait-elle pas être remplacée également:

Set CurrentPicture = Sheets("City").ChartObjects(ComboBox1.Column(0)).Chart

Ps : sinon as-tu essayé d'enregistrer le code grâce à l'enregistreur de maacros :
Tu fais la manipulation manuellement et ensuite tu adaptes le code obtenu avec tes variables

L'expérience, c'est une connerie par jour, mais jamais la même..
Messages postés
94
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
30 octobre 2011

Peux-tu me dire sur quelle ligne ça bugue?

Essaies de remplacer
Filename = ThisWorkbook.Path & "" & Sheets("City").ComboBox1.Column(0) & ".GIF"
par
Filename = ThisWorkbook.Path & "" & Sheets("City").ComboBox1.Text & ".GIF"
Messages postés
24
Date d'inscription
jeudi 4 août 2011
Statut
Membre
Dernière intervention
24 août 2011
1
Desole de vous repondre si tard mais j'etait bien occupee avec mon travail !!!

Donc c'est bien cette ligne la qui ne fonctionne pas mais meme en testant vos differentes solutions j'ai toujours la meme erreur.

Je seche completement sur ce probleme. Et je ne vois pas comment le contourner.

Peut etre que vous auriez une solution a me proposer si je sauvegarde mes images dans le meme dossier que l'application excel et non sur une feuille de mon excel. Si vous avez la solution pour ca, ce sera parfait pour moi.

Merci en tout les cas de votre tenacite !!!
Messages postés
94
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
30 octobre 2011

Le code que je te proposais était justement prévu pour le cas où tes images étaient stockées sur ton disque dur dans le même dossier que ton appli.

C'est ce que j'avais compris suite à ton message de 10h32.
Messages postés
24
Date d'inscription
jeudi 4 août 2011
Statut
Membre
Dernière intervention
24 août 2011
1
Autant pour moi !

cependant meme en mettant les images dans le dossier de l'application ca ne fonctionne pas !!!

L'erreur est identique et sur la meme ligne !

Bonne soiree et merci de votre patience
Messages postés
94
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
30 octobre 2011

Pour ma part j'utilise Excel 2000.
Sur Excel 2000, il existe 2 types de Combobox.

Comment as-tu créé la tienne?
A partir de quelle barre d'outils?
Boite à outils Controles
ou
Formulaires

Cette combobox figure bien sur ta feuille nommée City?
Messages postés
24
Date d'inscription
jeudi 4 août 2011
Statut
Membre
Dernière intervention
24 août 2011
1
Bonjour,

en effet, je suis bien dans une USF !!!

Je viens de tester ta solution, Gerard, et ca marche tres bien. Je suis ravie car ca faisait plusieurs jours que j'etait dessus !!! J'ai juste change l’extension car mes images sont en jpg .

c'est la premiere fois que je participe a un forum et les personnes s'acharnent jusqu'a trouver une solution. Je trouve ca vraiment sympa !!

Merci beaucoup de votre aide a tous les 2 et peut etre a bientot pour une autre énigme