Formulaire Excel 2007: Insérer des images avec une ListBox

Bonjour le Forum,
Je suis novice en VBA, et je coince sur un formulaire dans lequel je veux insérer une image dépendante de ma ListBox.
Mon formulaire est le récapitulatif de registres militaires d’anciens combattants de 14 18, et je veux faire apparaître, pour ceux qui avaient été médaillés, les images des médailles (double click sur le nom dans ma ListBox).
Voici une image du formulaire que j’obtiens,
une autre de ce que je veux obtenir,
et le classeur excel.
Merci beaucoup de bien vouloir essayer de m’aider, il me semble qu’il ne manque pas grand-chose, mais je galère depuis quelques soirs et je crains de devenir insomniaque…


Bonjour,

'Double cliquer sur la liste de choix en mode édition (vba) pour générer automatiquement nomDeLaListe_Change()
Private Sub ComboBox1_Change()
    Dim valeur As String
    Dim cheminImage As String
    'On recupère la valeur
    valeur = ComboBox1.Value
    
    
    'Création d'un tableau d'une dimension de taille 2
    Dim images(2) As String
    'Ps: dans votre cas peut être que vos données viennent d'une base de données donc à adapter.
    'On crée une liste des images correspondantes aux valeurs
    images(0) = "C:\Users\Gregoire\Documents\Aide excel\medaille1.jpg"
    images(1) = "C:\Users\Gregoire\Documents\Aide excel\medaille2.jpg"
    
    'En fonction de ce qui est marqué dans la liste de choix la variable cheminImage récupère l'élement dans notre tableau
    'Ps si le chemin de l'image est stoké dans une cellule le récupérer avec Range("A1").Value ou Cells(ligne, colonne).Value
    Select Case valeur
        Case 1
            cheminImage = images(0)
        Case "Patrice"
            cheminImage = images(1)
    End Select
    
    'On met à jour l'image
    Image1.Picture = LoadPicture(cheminImage)
    
End Sub

'A l'initialisation de l'UserForm on ajoute nos objets en guise d'exemples
Public Sub UserForm_Initialize()
    ComboBox1.AddItem 1
    ComboBox1.AddItem "Patrice"

End Sub

Grégoire Expert en VBA.

Cordialement.

1 « J'aime »