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
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.
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:
- Excel vba userform image
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Image iso - Guide
- Déplacer une colonne excel - Guide
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
6 sept. 2015 à 17:48
Bonjour,
Dans un UserForm mettre un commandbutton et un contrôle Image avec ce code
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
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
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
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
6 sept. 2015 à 19:30
Essaie cela, ça fonctionne chez moi:
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
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
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
6 sept. 2015 à 19:34
Correction:
il faut cliquer sur l'icone Excel dans la barre de tâche pour faire réapparaitre l'userForm
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