Image dans userform excel

Fermé
Johann - 6 sept. 2015 à 14:09
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 - 6 sept. 2015 à 19:34
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.
A voir également:

3 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
6 sept. 2015 à 17:48
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
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
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
6 sept. 2015 à 19:30
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
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
6 sept. 2015 à 19:34
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