RechercheV avec image

Résolu
garfieldu38 Messages postés 11 Statut Membre -  
garfieldu38 Messages postés 11 Statut Membre -
Bonjour à tous,

Impossible de trouver une solution malgré les forums et Youtube...

Le problème est tout simple, j'ai
- un fichier avec des références sans l'image (à gauche sur la capture d'écran)
- un fichier avec les mêmes références dans un ordre différent, avec les images à côté (à droite)
--> je cherche donc à avoir l'image correspondante sur mon fichier de gauche

J'ai essayé de combiner (sans succès)
- renommer les cellules depuis : formules > définir un nom depuis une sélection
- la fonction indirect
- recherche V classique
+ Je ne souhaite pas passer pas une liste déroulante (car pas adapté à mon problème

Quand je copie colle la cellule avec la photo (non la photo elle même), j'obtiens bien l'image car elle est "liée" à la cellule : mais impossible de faire une recherchev (ou index/equiv) sur la cellule...

merci d'avance pour votre aide !

1 réponse

  1. rEVOLV3r Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   28
     
    Bonjour,

    La meilleure façon est la suivante : Créer un dossier avec les images nommées selon leur numéro de référence puis appeler une macro qui vient ajouter l'image du dossier correspondant au nom dans la cellule de votre fichier excel.

    Macro à modifier :

    Public Sub Insertion_image(ByVal ws_name As String, ByVal val As Double, ByVal r As Integer, ByVal c As Integer)
    Dim file As Variant
    Dim myPict As Picture
    path = ActiveWorkbook.path & "\01 - Bibliothèque Images"
    file = Dir(path & "\")
    Do While (file <> "")
    If InStr(file, val) > 0 Then
    With ThisWorkbook.Sheets(ws_name).Cells(r, c)
    Set myPict = .Parent.Pictures.Insert(path & "\" & file)
    myPict.ShapeRange.LockAspectRatio = msoFalse
    myPict.Top = .Top
    myPict.Width = .Width
    myPict.Height = .Height
    myPict.Left = .Left
    myPict.Placement = xlMove
    myPict.Locked = msoFalse
    End With
    Exit Sub
    End If
    file = Dir
    Loop
    End Sub
    1
    1. garfieldu38 Messages postés 11 Statut Membre
       
      Merci bien ! C'est également ce que j'ai trouvé sur un forum, que j'ai à peine modifié (je suis nul en VBA)

      Sub LinkToImagebis()
      For Each cel In Selection
      cel.Offset(1, 0).Select
      cel.Offset(1, 0).RowHeight = 30
      cel.Offset(1, 0).ColumnWidth = 10

      Set image = ActiveSheet.Pictures.Insert(cel.Value)

      With image
      .ShapeRange.LockAspectRatio = msoTrue
      .Width = cel.Offset(0, 0).Width
      .Height = cel.Offset(0, 0).Height
      .Left = cel.Offset(0, 0).Left
      .Top = cel.Offset(0, 0).Top
      End With

      Next cel

      End Sub
      0