Image dans userform excel

Bonjour,
Je souhaite afficher une image dans un userform sur excel.
L'image (dans mon userform) à pour origine une adresse, un lien internet (type http://).
Il s'agit d'un affichage seul de l'image. Pas d'enregistrement en local.
Je ne trouve pas comment récupérer cette image pour l'afficher.
Affichage pour une "boite de dialogue" sans enregistrement de celle ci.
Merci à vous.

3 réponses

  1. Contributeur
    Bonjour,

    Dans un UserForm mettre un commandbutton et un contrôle Image avec ce code

    Option Explicit
    Private Sub CommandButton1_Click()
    insertion
    ExtractionImagesFeuille
    Image1.Picture = LoadPicture(ThisWorkbook.Path & "\monimage.gif")
    End Sub
    Sub insertion()
    Dim URL, Img
       URL = "http://finviz.com/chart.ashx?t=A&ty=c&ta=1&p=d&s=l"
       Set Img = ActiveSheet.Pictures.Insert(URL)
       Img.Left = [B2].Left
       Img.Top = [B2].Top
       Img.Name = "monimage"
      End Sub
    Sub ExtractionImagesFeuille()
        Dim Pict As Picture
        Dim Nb As Byte
     
        Application.ScreenUpdating = False
     
        For Each Pict In Worksheets("Feuil1").Pictures
            Pict.CopyPicture 'copie l'image
     
            With Worksheets("Feuil1").ChartObjects.Add(0, 0, Pict.Width, Pict.Height).Chart
                .Paste 'colle l'image dans un graphique temporaire
                'Sauvegarde au format image, dans le même répertoire que ce classeur.
                .Export ThisWorkbook.Path & "\" & Pict.Name & ".gif", "GIF"
            End With
     
            'Supprime le graphique
            Nb = Worksheets("Feuil1").ChartObjects.Count
            Worksheets("Feuil1").ChartObjects(Nb).Delete
        Next Pict
     
        Application.ScreenUpdating = True
    End Sub
    
    

    0
    1. Bonjour cs_Le Pivert.
      Bonjour cs_Le Pivert,

      Merci de votre réponse.

      Par contre, cela ne fonctionne pas chez moi.
      Il y a bien un objet qui s'insert, mais pas une image.
      Enfin un cadre avec une croix rouge en haut à gauche avec le texte "Impossible d'afficher l'image".
      De plus, les images que je souhaite insérer sont en jpeg.

      Merci à vous.

      Johann
      0
      1. Contributeur
        Essaie cela, ça fonctionne chez moi:

        Option Explicit
        Private Sub CommandButton1_Click()
        insertion
        ExtractionImagesFeuille
        Image1.Picture = LoadPicture(ThisWorkbook.Path & "\monimage.gif")
        End Sub
        Sub insertion()
        Dim URL, Img
        URL = "http://www2.csdm.qc.ca/Gadbois/Eleves/nomverbe/contenu/images/ouvrirporte.jpg" 
         'essai avec cette adresse
          Set Img = ActiveSheet.Pictures.Insert(URL)
           Img.Left = [B2].Left
           Img.Top = [B2].Top
           Img.Name = "monimage"
          End Sub
        Sub ExtractionImagesFeuille()
            Dim Pict As Picture
            Dim Nb As Byte
         
            Application.ScreenUpdating = False
         
            For Each Pict In Worksheets("Feuil1").Pictures
                Pict.CopyPicture 'copie l'image
         
                With Worksheets("Feuil1").ChartObjects.Add(0, 0, Pict.Width, Pict.Height).Chart
                    .Paste 'colle l'image dans un graphique temporaire
                    'Sauvegarde au format image, dans le même répertoire que ce classeur.
                    .Export ThisWorkbook.Path & "\" & Pict.Name & ".jpg", "JPG"
                End With
         
                'Supprime le graphique
                Nb = Worksheets("Feuil1").ChartObjects.Count
                Worksheets("Feuil1").ChartObjects(Nb).Delete
            Next Pict
         
            Application.ScreenUpdating = True
        End Sub


        Cela prend un certain temps. Quand l'image s'affiche sur la feuille, il faut cliquer sur la feuille pour faire réapparaitre l'userForm
        0
        1. Contributeur
          Correction:

          Option Explicit
          Private Sub CommandButton1_Click()
          insertion
          ExtractionImagesFeuille
          Image1.Picture = LoadPicture(ThisWorkbook.Path & "\monimage.jpg")
          End Sub
          Sub insertion()
          Dim URL, Img
             URL = "http://www2.csdm.qc.ca/Gadbois/Eleves/nomverbe/contenu/images/ouvrirporte.jpg"
             Set Img = ActiveSheet.Pictures.Insert(URL)
             Img.Left = [B2].Left
             Img.Top = [B2].Top
             Img.Name = "monimage"
            End Sub
          Sub ExtractionImagesFeuille()
              Dim Pict As Picture
              Dim Nb As Byte
           
              Application.ScreenUpdating = False
           
              For Each Pict In Worksheets("Feuil1").Pictures
                  Pict.CopyPicture 'copie l'image
           
                  With Worksheets("Feuil1").ChartObjects.Add(0, 0, Pict.Width, Pict.Height).Chart
                      .Paste 'colle l'image dans un graphique temporaire
                      'Sauvegarde au format image, dans le même répertoire que ce classeur.
                      .Export ThisWorkbook.Path & "\" & Pict.Name & ".jpg", "JPG"
                  End With
           
                  'Supprime le graphique
                  Nb = Worksheets("Feuil1").ChartObjects.Count
                  Worksheets("Feuil1").ChartObjects(Nb).Delete
              Next Pict
           
              Application.ScreenUpdating = True
          End Sub


          il faut cliquer sur l'icone Excel dans la barre de tâche pour faire réapparaitre l'userForm
          0