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, limage sera dynamique. C'est-à-dire quelle pourrait êt re mise à jour et écrasée par la nouvelle régulièrement.
Cest pour cela que je ne peux pas intégrer limage en dur di rectement dans Excel.
»
Bien à vous,
Blaise
VBA admis !
isabelle
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 !
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.
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
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
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
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
Bonjour,
With ActiveSheet.Pictures .Insert("http://www.abc.com/1234.jpg") End With