Image et ComboBox

Toubabou

XLDnaute Impliqué
Bonjour à tous

J’ai un Userform dans lequel se trouvent une ComboBox et un cadre image.
Je voudrai que lorsque la ComboBox est renseignée l’image concerné affiche une photo déterminée se trouvant dans le même document que mon fichier et sur une clé USB (tout en tenant compte que la lettre des clés USB n’es pas toujours la même en fonction du PC utilisé.
Pourriez-vous m’aider ?

Merci par avance,

Toubabou
 

Pièces jointes

  • Test photo.xlsm
    16.8 KB · Affichages: 56

job75

XLDnaute Barbatruc
Re : Image et ComboBox

Bonjour Toubabou,

Il faut tout vous faire, même choisir des images !!!

Code:
Private Sub ComboBox1_Change()
If ComboBox1.ListIndex = -1 Then Image1.Picture = LoadPicture(""): Exit Sub
Dim s As Shape
Set s = Feuil2.Shapes(ComboBox1)
s.CopyPicture
With Feuil2.ChartObjects.Add(0, 0, s.Width, s.Height).Chart
  .Paste
  .Export ThisWorkbook.Path & "\MonImage.jpg", "JPG"
  .Parent.Delete
End With
Image1.Picture = LoadPicture(ThisWorkbook.Path & "\MonImage.jpg")
Kill ThisWorkbook.Path & "\MonImage.jpg"
End Sub

Private Sub UserForm_Initialize()
Dim s As Shape
For Each s In Feuil2.Shapes
  ComboBox1.AddItem s.Name
Next
End Sub
Fichier joint.

A+
 

Pièces jointes

  • Test photo(1).xls
    750.5 KB · Affichages: 71

Toubabou

XLDnaute Impliqué
Re : Image et ComboBox

Bonjour Job75,

Je n'avais pas mis d'image car celles que je veux utiliser se trouvent sur une clé USB et ne sont pas intégrés au fichiers Excel, mais sont dans un dossier (pardon je me suis mal exprimé) sous format Jpeg
A+
 

job75

XLDnaute Barbatruc
Re : Image et ComboBox

Re,

C'est encore plus simple :

Code:
Private Sub ComboBox1_Change()
If ComboBox1.ListIndex = -1 Then Image1.Picture = LoadPicture(""): Exit Sub
Image1.Picture = LoadPicture(ThisWorkbook.Path & "\" & ComboBox1 & ".jpg")
End Sub

Private Sub UserForm_Initialize()
Dim fichier
fichier = Dir(ThisWorkbook.Path & "\*.jpg")
While fichier <> ""
  ComboBox1.AddItem Left(fichier, Len(fichier) - 4)
  fichier = Dir
Wend
End Sub
Fichiers zippés joints, mettez les tous dans le même dossier (répertoire).

A+
 

Pièces jointes

  • Test photo(2).zip
    883.8 KB · Affichages: 89
  • Test photo(2).zip
    883.8 KB · Affichages: 77
  • Test photo(2).zip
    883.8 KB · Affichages: 81

job75

XLDnaute Barbatruc
Re : Image et ComboBox

Re,

Je viens de passer sur Excel 2010 et j'ai des problèmes avec le fichier .xls précédent.

La liste de la ComboBox ne se crée pas.

C'est un fichier converti, je pense qu'il est vérolé, d'ailleurs il pèse très lourd même en supprimant les images.

Alors je joins votre fichier d'origine .xlsm zippé avec les images.

A+
 

Pièces jointes

  • Test photo(2).zip
    191.8 KB · Affichages: 69
  • Test photo(2).zip
    191.8 KB · Affichages: 46
  • Test photo(2).zip
    191.8 KB · Affichages: 55

job75

XLDnaute Barbatruc
Re : Image et ComboBox

Pourrais tu juste comment modifier le chemin de mes images, car pour moi c'est:
F:\Jean-Marie\Photos\Galons ("F" risquant de changer en fonction du PC utilisé)

Vous n'aurez pas de problème si vous mettez vos fichiers JPEG dans le même dossier que le fichier Excel, ou à la rigueur dans un de ses sous-dossiers.

En effet le chemin du dossier commencera toujours par ThisWorkbook.Path.

Bonne soirée.
 

job75

XLDnaute Barbatruc
Re : Image et ComboBox

Re,

Le code avec le chemin d'accès que vous avez indiqué :

Code:
Private Sub ComboBox1_Change()
If ComboBox1.ListIndex = -1 Then Image1.Picture = LoadPicture(""): Exit Sub
Image1.Picture = LoadPicture(Left(ThisWorkbook.Path, 3) & _
  "Jean-Marie\Photos\Galons\" & ComboBox1 & ".jpg")
End Sub

Private Sub UserForm_Initialize()
Dim fichier
fichier = Dir(Left(ThisWorkbook.Path, 3) & "Jean-Marie\Photos\Galons\*.jpg")
While fichier <> ""
  ComboBox1.AddItem Left(fichier, Len(fichier) - 4)
  fichier = Dir
Wend
End Sub
Le fichier Excel peut être où vous voulez mais sur le même lecteur (clé USB) que les fichiers JPEG.

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 370
Messages
2 087 688
Membres
103 639
dernier inscrit
NIEMASAFI