Bonjour,
Voilà, j'aimerais savoir s'il est possible d'afficher des images à partir d'url dans un controle VBA ?
Sachant que, si possible, ce même contrôle devrait être aussi capable d'afficher une image placée sur mon disque dur.
Merci d'avance
Version imprimable
Bonjour,
Voilà, j'aimerais savoir s'il est possible d'afficher des images à partir d'url dans un controle VBA ?
Sachant que, si possible, ce même contrôle devrait être aussi capable d'afficher une image placée sur mon disque dur.
Merci d'avance
Salut,
Si c'est dans un 'Userform':
Pour une image sur le disque tu peux utiliser la méthode 'LoadPicture()'.
Si c'est une 'url' alors il me semble que ce n'est pas possible directement avec la méthode ci-dessous. Il faut lui adjoindre la méthode 'URLDownloadToFile()'.
Sinon tu peux aussi utiliser un contrôle 'WebBrowser'.
Merci pour tes réponses.
Pour l'image sur mon disque dur, j'utilise effectivement LoadPicture(), je vais donc regarder comment fonctionne 'URLDownloadToFile()'. Par contre, si je comprend bien, cette méthode va enregistrer l'image distante sur le dur, ce qui peut être assez gênant si j'ai beaucoup d'images à afficher.
Dans ce cas utilise un contrôle 'WebBrowser'.
Bonsoir
mais non mais non!!!! a ton problème solution il peut y avoir
sur un shapes(image) on peut le faire directement par le fillpicture
dans les contribs encore une fois tu trouvera une de mes contributions
comment copier un shapes image dans un control image d'un userform
et boutons persos
l'association des deux peut faire ton affaire
tu vois la lumière la??????
Au plaisir
Ok désolé pour la mauvaise orientation que je t'ai donné.
Merci Patricktoulon
Par contre, je cherche depuis une bonne heure dans tes nombreuses contributions, et je ne trouve toujours pas (je m'y prend surement très mal), aurais-tu un lien direct ?
Bon, j'ai fini par trouver dans une de tes contributions je crois, en fait c'est très simple, un bête :
Set sh = Sheets(1).Shapes.AddShape(msoShapeRectangle, 5, 5, 40, 100)
sh.Fill.UserPicture "http://.... .jpg"
Et ca marche très bien ! Et même avec du https apparemment !
Merci beaucoup !
Bonjour
a la bonne heure si tu a trouvé
maintenant cherche au même endroit
ceci:
des boutons plus fun pour mon userform
ou bien cela:
une progressbar perso façon patosch
ou bien encore cela
fond en dégradé ou texturé pour userform
et il y en a d'plein d'autre
tu verra dedans il y a le module qui te permet de copier le shape en image mémoire et le reproduire dans un control image de l'userform le tout en un temps record de moins d'un centième seconde
donc dans ton cas tu te sert de filluserpicture dans ton sheet
tu copie l'image et transfert dans le userform avec le module
et tu supprime le shappe dans le sheet
et le tour est joué
voili voilou
Au plaisir
Re
j'ai, pris 15 minute pour te faire un exemplaire comme ca vite fait
regarde comment on récupère le logo de développez et on le met dans le userform sans le télécharger
ouvre un nouveau fichier
met lui un module standard et un userform avec un control image dedans
dans le module standard met ceci:
et dans le module du userform met ceciCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78 '"""""""""""""""""""""""""""MODULE POUR INSERER UNE image récupéré sur le net """"""""""""""""""""""" ' " ' creation patricktoulon " ' " ' Theme : vba et internet (image) " '"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Option Explicit Public Type GUID Data1 As Long Data2 As Integer Data3 As Integer Data4(8) As Byte End Type Public Type PICTDESC cbSize As Long picType As Long hImage As Long End Type Public Declare Function OpenClipboard& Lib "User32" (ByVal hwnd As Long) Public Declare Function EmptyClipboard Lib "User32" () As Long Public Declare Function GetClipboardData& Lib "User32" (ByVal wFormat%) Public Declare Function SetClipboardData Lib "User32" (ByVal wFormat As Long, ByVal hMem As Long) As Long Public Declare Function CloseClipboard& Lib "User32" () Public Declare Function CopyImage& Lib "User32" (ByVal handle&, ByVal un1&, ByVal n1&, ByVal n2&, ByVal un2&) Public Declare Function IIDFromString Lib "ole32" (ByVal lpsz As String, ByRef lpiid As GUID) As Long Public Declare Function OleCreatePictureIndirect Lib "olepro32" (pPictDesc As PICTDESC, ByRef riid As GUID, ByVal fOwn As Long, ByRef ppvObj As IPicture) As Long Public maform As Object Public iPic As IPicture Dim sh As Object 'on prend un cliché on en fait un bitmap Public Function image_du_net_dans_userform(usf, url) Set maform = usf ' au cas ou progress existerait deja on la vire du sheet Dim shapo As Shape For Each shapo In Sheets(1).Shapes If shapo.Name = "logo" Then shapo.Delete Next Set sh = Sheets(1).Shapes.AddShape(msoShapeRectangle, 5, 5, 200, 100) With sh .Fill.UserPicture url .Name = "logo" End With 'on copie le logo dans le clipboard ActiveSheet.Shapes("logo").CopyPicture xlScreen, xlBitmap 'copie la selection dans le clipboard 'prend l'image dans le cliboard Dim hCopy&: OpenClipboard 0& hCopy = CopyImage(GetClipboardData(2), 0, 0, 0, &H8) CloseClipboard ' ferme le cliboard If hCopy = 0 Then Exit Function 'si il y a rien on sort de la fonction Const IPictureIID = "{7BF80981-BF32-101A-8BBB-00AA00300CAB}" Dim tIID As GUID, tPICTDEST As PICTDESC, Ret As Long Ret = IIDFromString(StrConv(IPictureIID, vbUnicode), tIID) If Ret Then Exit Function With tPICTDEST .cbSize = Len(tPICTDEST) .picType = 1 .hImage = hCopy End With 'on créé le itmap Ret = OleCreatePictureIndirect(tPICTDEST, tIID, 1, iPic) If Ret Then Exit Function On Error GoTo 0 With usf.Image1 .Picture = iPic .PictureSizeMode = 1 End With ActiveSheet.Shapes("logo").Delete ' on vide la memoire de ipic on en a plus besoins non plus 'limage est copiée dans le controlimage (slider) Set iPic = Nothing End Function
voila maintenant des que le userform s'affiche le logo de DVP s'afficheCode:
1
2
3 Private Sub UserForm_Activate() image_du_net_dans_userform Me, "http://www.developpez.net/template/images/logo.png" End Sub
voila voila
Au plaisir