insérer une image dynamique

Le
blaise
Bonjour,

Un collègue me pose une colle :

«

Connais-tu une méthode simple pour insérer des images dans Excel via un=
e URL ?

En fait, l’image sera dynamique. C'est-à-dire qu’elle pourrait être=
mise à jour et écrasée par la nouvelle régulièrement.

C’est pour cela que je ne peux pas intégrer l’image ‘en dur’ dire=
ctement dans Excel.

»

Bien à vous,

Blaise
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Blaise
Le #24595691
Le mardi 26 juin 2012 13:10:22 UTC+2, Blaise a écrit :
Bonjour,

Un collègue me pose une colle :

«

Connais-tu une méthode simple pour insérer des images dans Excel via une URL ?

En fait, l’image sera dynamique. C'est-à-dire qu’elle pourrait êt re mise à jour et écrasée par la nouvelle régulièrement.

C’est pour cela que je ne peux pas intégrer l’image ‘en dur’ di rectement dans Excel.

»

Bien à vous,

Blaise



VBA admis !
isabelle
Le #24595761
bonjour Blaise,

une possibilité serait d'utiliser un contrôle Image,
si le fichier image principal ne change pas de nom et d'emplacement
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:tempbaleine à 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 :
Le mardi 26 juin 2012 13:10:22 UTC+2, Blaise a écrit :
Bonjour,

Un collègue me pose une colle :

«

Connais-tu une méthode simple pour insérer des images dans Excel via une URL ?

En fait, l’image sera dynamique. C'est-à-dire qu’elle pourrait être mise à jour et écrasée par la nouvelle régulièrement.

C’est pour cela que je ne peux pas intégrer l’image ‘en dur’ directement dans Excel.

»

Bien à vous,

Blaise



VBA admis !
Blaise
Le #24598571
Bonjour Isabelle,
Je lui ai donné cette piste ci :

Une sub pour insérer l'image et surtout pour la nommer Largement inspir ée par MSDN

Une function "volatile" qui met à 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

'Boucle pour supprimer l'ancienne image
For Each ShapeObj In ActiveSheet.Shapes
If ShapeObj.Name = "Cible" Then ActiveSheet.Shapes("Cible").Delet e
Next ShapeObj

If Application.Dialogs(xlDialogInsertPicture).Show Then
'Définit l'emplacement de l'image
Set Emplacement = Range("D3:E8")

Set Img = ActiveSheet.DrawingObjects(ActiveSheet.Shapes.Count)

With Img.ShapeRange
'Nommer l'image insérée (Pour la supprimer plus facilement ensuite)
.Name = "Cible"
.LockAspectRatio = msoFalse
.Left = Emplacement.Left
.Top = Emplacement.Top
.Height = Emplacement.Height
.Width = Emplacement.Width
End With

Else
MsgBox "Insertion d'image interrompue."
End If

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 = "Cible" Then
With ShapeObj
sNF = .AlternativeText
rL = .Left
rT = .Top
rW = .Width
rH = .Height
.Delete
End With
End If
Next ShapeObj

ActiveSheet.Shapes.AddPicture sNF, True, True, rL, rT, rW, rH
Set Img = ActiveSheet.DrawingObjects(ActiveSheet.Shapes.Count)
With Img.ShapeRange
'Nommer l'image insérée (Pour la supprimer plus facilement ensu ite)
.Name = "Cible"
.LockAspectRatio = msoFalse
End With
End Function
MichD
Le #24616451
Bonjour,


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



MichD
---------------------------------------------------------------
Publicité
Poster une réponse
Anonyme