How to Insert Multiple Images and Resize Selected Cells

bonjour

je voudrais à partir du code d'une liste d'articles insérer dans une cellule son image correspondante a partir d'un fichier contenant ces images tout en sachant que le nom de l'image est le code de l'article et qu'elle soit redimensionnée automatiquement. 

pour cela je crée un tableau avec comme 1ere colonne le code 2éme colonne la désignation et en 3éme la photo. 

merci pour votre aide

9 réponses

  1. bonjour

    oui bien sur j'utilise excel

    1. Ben non pas bien sûr

      Il y a une dizaine de vb différents. Comme tu ne précises pas la question de yg_be est essentielle

  2. merci de me le préciser.

    comme je ne travaille que sur excel ça m'est complétement échappé.

    merci pour votre soutien et à votre entière disposition pour amples informations.

    1. Contributeur

      as-tu tenté de commencer la macro avec l'enregistreur de macro, afin d'insérer et de redimensionner une image?

      1. bjr yg_be

        franchement non. j'ai seulement trouvé une macro pour redimensionner les images que j'insére manuellement  et c'est là le problème vu le nombre d'articles élevés.

        voici d'ailleur la macro qui marche pour redimensionner les images :

        Public Sub FitPic()
        On Error GoTo NOT_SHAPE
        Dim PicWtoHRatio As Single
        Dim CellWtoHRatio As Single
        With Selection
        PicWtoHRatio = .Width / .Height
        End With
        With Selection.TopLeftCell
        CellWtoHRatio = .Width / .RowHeight
        End With
        Select Case PicWtoHRatio / CellWtoHRatio
        Case Is > 1
        With Selection
        .Width = .TopLeftCell.Width
        .Height = .Width / PicWtoHRatio
        End With
        Case Else
        With Selection
        .Height = .TopLeftCell.RowHeight
        .Width = .Height * PicWtoHRatio
        End With
        End Select
        With Selection
        .Top = .TopLeftCell.Top
        .Left = .TopLeftCell.Left
        End With
        Exit Sub
        NOT_SHAPE:
        MsgBox "Select a picture before running this macro."
        End Sub

        1. Contributeur

          Connais-tu l'enregistreur de macros?

        2. Contributeur

          Sais-tu comment automatiser pour un seul article?

      2. enregistreur de macros tu parle de VB ?

        1. Contributeur

          Dans Excel, il existe un enregistreur de macro, qui crée du code VBA à partir d'actions faites par l'utilisateur.

        2. @yg_be

          j'ai fait de la programmation quand j'étais jeune et j'ai eu mon diplome dans ce domaine mais le boulot m'a amené à faire autre chose. néanmoins je garde tjrs la méthode mais j'avoue que les langages ont beaucoups changé.pour le VBA je suis vraiment novice je copie et je colle puis j'essaye d'adapter à mon cas.

          pour l'insertion des images à partir d'un fichier donné je ne maitrise pas du tout c'est pourquoi je sollicite  votre aide et merci

        3. Contributeur
          @ABDOUWYDADI65

          Essaie d'abord de le faire via Excel, sans VBA

          Ensuite, essaie d'enregistrer une macro quand tu fais tous cela.

          Plus tard, montre-moi cette macro, je tenterai de t'aider à la répéter sur tous les articles.

          Pour le moment prends ton temps.

        4. @yg_be

          merci de tout coeur

          j'essaye et je t'envoie.

        5. @yg_be

          bonjour yg_be

          je me retourne à toi car j'ai commencé une macro dans ce sens je te l'envoie et dis moi quelles sont les erreurs qui empechent l'affichage des photos.

          la macro :

          Sub InsererImage() 'inserer une image a partir d'un fichier externe

          Dim Fichier As String
          Dim objImg As Object
          Dim Emplacement As Range
          Dim FilePath As String
          Dim i As Integer
          i = 2
          FilePath = "C:\Users\Comp1\Pictures\MR\"
           'mon chemin à moi'
          On Error GoTo err
          Do While Cells(i, 1) <> ""
          Fichier = FilePath & Cells(i, 1) & ".jpg"
          Set objImg = ActiveSheet.Pictures.Insert(Fichier)
          objImg.Select
          Set Emplacement = Cells(i, 5)
          Set objImg = ActiveSheet.DrawingObjects(ActiveSheet.Shapes.Count)
          With objImg.ShapeRange
              .LockAspectRatio = msoFalse
              .Left = Emplacement.Left
              .Top = Emplacement.Top
              .Height = Emplacement.Height
              .Width = Emplacement.Width
          End With
          err:
          Cells(i, 5) = "pas d'image"
          Loop
          i = 2
          End Sub
           

          le 1er article n'a pas de photo donc c'est logique qu'il affiche "pas d'image"

          mais la macro s'arrete là merci de m'eclairer sur le probléme

      3. Je ne sais pas encore comment automatiser pour un article.

        1. bonjour

          je reformule ma demande comme suite : je voudrais à partir de la reference d'un article stocké récuperer automatiquement la désignation la qté et l'unité et ce dans un tableau. 

          dans la 1ere colonne a partir de la 2eme ligne (la 1ere est pour les entetes) j'ai la liste de reference de tous les articles stockés. à l'aide d'une macro qui fonctionne bien je récupère les autres données dans les colonnes 2 3 et4.

          l'idée maintenant c'est d'insérer l'image de chaque article dans la colonne 5.

          les images se trouvent dans un fichier externe (lien \\192.168.100.200\Partage\NH50\) le nom de l'image c'est bien sur la reference de l'article.

          pour ce faire verifier si l'image existe inserer l'image pleinement dans la cellule de la colonne 5 sinon afficher un vide et repeter pour les lignes suivantes jusqu'à ce que la reference soit vide.

          j'espére que ce soit plus clair maintenant

          et merci de tout pour votre aide et votre soutien.