Excel - insérer_une_image_dynamique

Asked By blaise on 26-Jun-12 07:10 AM
Bonjour,

Un coll=E8gue me pose une colle :=20

=AB

Connais-tu une m=E9thode simple pour ins=E9rer des images dans Excel via un=
e URL ?

En fait, l=92image sera dynamique. C'est-=E0-dire qu=92elle pourrait =EAtre=
mise =E0 jour et =E9cras=E9e par la nouvelle r=E9guli=E8rement.

C=92est pour cela que je ne peux pas int=E9grer l=92image =91en dur=92 dire=
ctement dans Excel.

=BB

Bien =E0 vous,

Blaise


Blaise replied to blaise on 26-Jun-12 08:57 AM
Le mardi 26 juin 2012 13:10:22 UTC+2, Blaise a =E9crit=A0:
une URL ?
re mise =E0 jour et =E9cras=E9e par la nouvelle r=E9guli=E8rement.
rectement dans Excel.

VBA admis !
isabelle replied to Blaise on 26-Jun-12 09:34 AM
bonjour Blaise,

une possibilit? serait d'utiliser un contr?le Image,
si le fichier image principal ne change pas de nom et dthemplacement
et que la nouvelle image est enregistrer sous le nom du fichier principal et au m?me emplacement.

Private Sub Image1_Click()
MonImage
End Sub

Sub MonImage()
With Sheets("Feuil1").Image1
.Picture = LoadPicture("c:\temp\baleine ? bosse.jpg")
End With
End Sub

j'ai utilis? l'?v?nement Image1_Click, mais ?a pourrait ?tre n'importe lequel des ?v?nements.



--
isabelle



Le 2012-06-26 08:57, Blaise a ?crit :
Blaise replied to isabelle on 27-Jun-12 05:38 AM
Bonjour Isabelle,
Je lui ai donn=E9 cette piste ci :

Une sub pour ins=E9rer l'image et surtout pour la nommer Largement inspir=
=E9e par MSDN

Une function "volatile" qui met =E0 jour l'image.  Y a qu'a changer le chem=
in par une url.

Cdt
Blaise


Sub InsertionImage()
Dim Emplacement As Range
Dim Img As Object
Dim ShapeObj As Shape
=20
'Boucle pour supprimer l'ancienne image
For Each ShapeObj In ActiveSheet.Shapes
If ShapeObj.Name =3D "Cible" Then ActiveSheet.Shapes("Cible").Delet=
e
Next ShapeObj
=20
If Application.Dialogs(xlDialogInsertPicture).Show Then
'D=E9finit lthemplacement de l'image
Set Emplacement =3D Range("D3:E8")
=20
Set Img =3D ActiveSheet.DrawingObjects(ActiveSheet.Shapes.Count)
=20
With Img.ShapeRange
'Nommer l'image ins=E9r=E9e (Pour la supprimer plus facilement =
ensuite)
.Name =3D "Cible"
.LockAspectRatio =3D msoFalse
.Left =3D Emplacement.Left
.Top =3D Emplacement.Top
.Height =3D Emplacement.Height
.Width =3D Emplacement.Width
End With
=20
Else
MsgBox "Insertion d'image interrompue."
End If
=20
End Sub

Function Image_Volatile()
Application.Volatile
Dim Emplacement As Range
Dim Img As Object
Dim ShapeObj As Shape
Dim sNF As String
Dim rL As Single, rT As Single, rH As Single, rW As Single

'Boucle pour supprimer l'ancienne image
For Each ShapeObj In ActiveSheet.Shapes
If ShapeObj.Name =3D "Cible" Then
With ShapeObj
sNF =3D .AlternativeText
rL =3D .Left
rT =3D .Top
rW =3D .Width
rH =3D .Height
.Delete
End With
End If
Next ShapeObj

ActiveSheet.Shapes.AddPicture sNF, True, True, rL, rT, rW, rH
Set Img =3D ActiveSheet.DrawingObjects(ActiveSheet.Shapes.Count)
With Img.ShapeRange
'Nommer l'image ins=E9r=E9e (Pour la supprimer plus facilement ensu=
ite)
.Name =3D "Cible"
.LockAspectRatio =3D msoFalse
End With
End Function
MichD replied to blaise on 04-Jul-12 05:01 PM
Bonjour,


With ActiveSheet.Pictures
.Insert("http://www.abc.com/1234.jpg")
End With



MichD
---------------------------------------------------------------