Inserer images cellule active.xlsx

Résolu
Bonjour
.
J'essaie d'intégrer une macro sur un fichier.xlsx qui permet d'insérer des photos dans les cellules actives.
.
J'ai plusieurs contraintes :
- Je voudrais que les images se dimensionnent à la hauteur de ligne.
- J'ai plusieurs photos qui seront dans le même dossier ou se trouve ce fichier. Je veux donc choisir les images sans avoir a toucher les images (modifier nom, les positionner dans un répertoire particulier...)
.
J'ai déjà çà comme base mais ca ne me convient pas et j'utilise CTRL + SHIFT + I :
.
-------------------------
Sub InsererImage()

ActiveSheet.Pictures.Insert("C:\image.jpg").Select

With Selection.ShapeRange
.Left = ActiveCell.Left
.Top = ActiveCell.Top
End With

End Sub
----------------------------------
.
Merci pour votre aide.
Sam77181
.

7 réponses

  1. Contributeur
    Bonjour,

    Voici un exemple:

    http://www.cjoint.com/c/EIwmXn5Pw8Q
    1. Merci Pivert
      .
      C'est super ce fichier.
      .
      Je pense pouvoir exploiter ce que tu m'as envoyé, mais je suis embêté en partie car je souhaite pouvoir choisir moi même les images dans le répertoire "Dossierimages" pour les mettre dans l'ordre qui me convient un à un si nécessaire.
      .
      cela faisait longtemps que je n'utilisais plus excel pour ce genre de besoin, et je suis toujours aussi étonné de voir ce que l'on peut faire avec.

      Merci
      Sam
      1. Contributeur
        Voilà:

        http://www.cjoint.com/c/EIwnzGvCpWQ
        1. Waouhhhh Waouhhh et reWaouhhh

          Rapide et concis.

          Merci Pivert.
          C'est beau ! :)

          Je suppose qu'en me penchant sur le code je vais pouvoir modifier le chemin de destination pour ouvrir la fenetre de recherche sur le dossier que je veux dans "mesdocuments"...
          et que je peux faire démarrer le double clique sur une plage de cellules sélectionnées... ?

          Merci je vais me pencher sur tout ca

          Bonne fin de journée

          Sam
      2. Contributeur
        Pour l'ouverture sur le dossier:

        Sub ImportImages()
           Dim oPict As New stdole.StdPicture
            ChDir "C:\Users\....\Pictures" 'adapter chemin dossier à ouvrir
          chemin = Application.GetOpenFilename
          If chemin = False Then Exit Sub 'annulation
          hauteur = 100 'a adapter la hauteur de l'image
         Set oPict = stdole.LoadPicture(chemin)
         ratio = oPict.Width / oPict.Height
        If oPict.Height < oPict.Width Then 'mode paysage
        largeur = hauteur * ratio
        Else
        largeur = hauteur * ratio
        End If
             Columns(Colonne).ColumnWidth = largeur / 5.5
             Rows(Ligne & ":" & Ligne).RowHeight = hauteur
          ActiveSheet.Pictures.Insert(chemin).Select
          Var = Selection.Name
          Selection.ShapeRange.LockAspectRatio = msoFalse
          With ActiveSheet.Shapes(Var)
            .Top = Range(position).Top
            .Left = Range(position).Left
            .Height = hauteur
            .Width = largeur
             End With
             End Sub


        Pour la plage de cellule:

        Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        If Not Application.Intersect(Target, Range("A1:F38")) Is Nothing Then 'a adapter la plage de cellule
        position = Target.Address
        Ligne = Target.Row
        Colonne = Target.Column
        position = Replace(position, "$", "")
        ImportImages
        End If
        End Sub

        1. Merci beaucoup Pivert

          Tu me simplifies le recherche et surtout m'évite des maux de tête.

          Sam
        2. Bonjour Pivert

          J'y ai passé la soirée mais pas réussi. Je n'ai pas les connaissances nécessaires pour l'adapter à mon fichier.
          Quelqu'un pourrait il l'intégrer à mon fichier si je l'upload quelque part ?

          Merci beaucoup
          Sam
        3. Voila le fichier http://www.cjoint.com/c/EIxib3PTOnh
      3. Contributeur
        Voila, il faudra activer le chemin du dossier à ouvrir, après l'avoir adapter:

        http://www.cjoint.com/c/EIxlvG8LLvQ
        1. merci
          le fichier ne s'ouvre pas
          c'est normal l'extension xlsm ????
      4. Contributeur
        Le dernier classeur était en Excel 2007, celui-ci est en 2003:

        http://www.cjoint.com/c/EIxl5z0xSYQ
        1. Impeccable
          Merci Le Pivert

          Sam
        2. Je ne cloture pas de suite le sujet avant de m'assurer que tout est opérationnel.