Inserer 2 images différentes à partir d'une seule donnée

Bernard Minet

XLDnaute Nouveau
Bonjour à tous, quelques problèmes pour trouver un titre qui convenait :D.


J'explique donc mon cas :

J'ai une liste déroulante de données, quand je choisi une donnée dans la liste (on les apellera "gammes d'objets") cela me fait apparaitre d'autre données automatiquement dans diverses cellules ("N° de l'objet", "nom de l'objet", "image de l'objet").

Le problème surviens dans des cas particuliers, nottament lorsque la "gamme d'objets" comprend plusieurs objets... par exemple 2.

Cela me fait 2 "N° d'objet", 2 "nom" et 2 "images" à faire apparaitre...

Pour les "N°" et les "nom" c'est pas compliqué mais comment faire apparaitre 2 images différentes à partir d'un seul nom de "gammes d'objets" ?

Note : Un nom de gamme est écrit de la façon suivante : Objet1_Objet2
Note : Une image porte le même nom qu'un objet. (donc Objet1.jpg, Objet2.jpg)


J'ai essayé plusieurs méthodes comme par exemple séparer en 2 le nom de la "gamme d'objet" grâce à "convertir". Mais cela ne me renvoie que l'image du 1er objet et pas celui du 2ème.:(

Ou encore, faire en sorte que les images soient liées au "N° de piece" plutot qu'a la gamme, cette méthode marche mais je suis obligé de séléctionner la cellules avec les N° et d'appuyer sur ENTRER pour que l'image liée au N° s'affiche... (sans doute parce que le N° est appelée par la gamme au lieu d'être inséré directement).

Comment feriez vous à ma place ?
Merci !:eek:


Ps : voici le code qui recherche l'image:
Code:
Private Sub Worksheet_Change(ByVal Target As Range) 

 If Target.Address = "$A$1" Then 
   On Error Resume Next
   ActiveSheet.Shapes("image").Delete 
   rep = "C:\Documents and Settings\xxxxxxxxxxx\xxxxxxxxxx\Images_pieces"
   nom_image = rep & "\" & Target & ".jpg" 
   [C4].Select
   ActiveSheet.Pictures.Insert(nom_image).Select
   Selection.Name = "image" 
      With ActiveSheet.Shapes("image") 
         .LockAspectRatio = msoFalse 
         .Top = Range("C4").Top 
         .Left = Range("C4").Left 
         .Height = Range("C4").Height 
         .Width = Range("C4:E4").Width 
      End With
   [A1].Select
   On Error GoTo 0
 End If

End Sub

En éspérant avoir été le plus clair possible ! (c'était dur !)
 
Dernière édition:

Discussions similaires