J'ai un souci avec l'insertion d'images dans Excel : si j'utilise le menu i=
nsertion pour ins=C3=A9rer un jpg, et que je sauvegarde le classeur, je peu=
x copier celui-ci sur un autre PC, l'image reste int=C3=A9gr=C3=A9e au clas=
seur.
Si je fais la m=C3=AAme chose par macro, j'ai le message d'insulte classiqu=
e d'Excel :
"Impossible d'afficher l'image li=C3=A9e" etc...
Bonjour, Suppose que tu veuilles insérer une image sur l'onglet "Feuil2" couvrant la plage de cellules B5:D6 et que cette image se trouve dans le répertoire "C:WinntPlume.bmp", Plume.bmp étant le nom de l'image. '-------------------------------------------------------------- Sub TestMonImage() InsérerImage "Feuil2", Range("b5:D6"), "C:WinntPlume.bmp" End Sub '-------------------------------------------------------------- Sub InsérerImage(Feuille As String, RgImage As Range, NomImage As String) Dim Rg As Range Set Rg = Worksheets(Feuille).Range(RgImage.Address) With Rg Largeur = .Offset(, 1)(, .Columns.Count).Left - .Left Hauteur = .Offset(.Rows.Count).Top - .Item(1).Top Set Image = Worksheets(Feuille).Pictures.Insert(NomImage) End With With Image .ShapeRange.LockAspectRatio = msoFalse 'or Msotrue .Left = Rg.Left .Top = Rg.Top 'Largeur de l'image Image.Width = Largeur 'Hauteur de l'image Image.Height = Hauteur 'Est-ce que l'image doit se déplacer avec les cellules 'voici les 3 constantes possibles .Placement = xlFreeFloating 'or xlmove or xlMoveAndSize 'Verrouillé ou pas .Locked = True 'or False End With Set Rg = Nothing End Sub '-------------------------------------------------------------- MichD
Bonjour,
Suppose que tu veuilles insérer une image sur l'onglet "Feuil2" couvrant la plage de cellules
B5:D6 et que cette image se trouve dans le répertoire "C:WinntPlume.bmp", Plume.bmp étant le
nom de l'image.
'--------------------------------------------------------------
Sub TestMonImage()
InsérerImage "Feuil2", Range("b5:D6"), "C:WinntPlume.bmp"
End Sub
'--------------------------------------------------------------
Sub InsérerImage(Feuille As String, RgImage As Range, NomImage As String)
Dim Rg As Range
Set Rg = Worksheets(Feuille).Range(RgImage.Address)
With Rg
Largeur = .Offset(, 1)(, .Columns.Count).Left - .Left
Hauteur = .Offset(.Rows.Count).Top - .Item(1).Top
Set Image = Worksheets(Feuille).Pictures.Insert(NomImage)
End With
With Image
.ShapeRange.LockAspectRatio = msoFalse 'or Msotrue
.Left = Rg.Left
.Top = Rg.Top
'Largeur de l'image
Image.Width = Largeur
'Hauteur de l'image
Image.Height = Hauteur
'Est-ce que l'image doit se déplacer avec les cellules
'voici les 3 constantes possibles
.Placement = xlFreeFloating 'or xlmove or xlMoveAndSize
'Verrouillé ou pas
.Locked = True 'or False
End With
Set Rg = Nothing
End Sub
'--------------------------------------------------------------
Bonjour, Suppose que tu veuilles insérer une image sur l'onglet "Feuil2" couvrant la plage de cellules B5:D6 et que cette image se trouve dans le répertoire "C:WinntPlume.bmp", Plume.bmp étant le nom de l'image. '-------------------------------------------------------------- Sub TestMonImage() InsérerImage "Feuil2", Range("b5:D6"), "C:WinntPlume.bmp" End Sub '-------------------------------------------------------------- Sub InsérerImage(Feuille As String, RgImage As Range, NomImage As String) Dim Rg As Range Set Rg = Worksheets(Feuille).Range(RgImage.Address) With Rg Largeur = .Offset(, 1)(, .Columns.Count).Left - .Left Hauteur = .Offset(.Rows.Count).Top - .Item(1).Top Set Image = Worksheets(Feuille).Pictures.Insert(NomImage) End With With Image .ShapeRange.LockAspectRatio = msoFalse 'or Msotrue .Left = Rg.Left .Top = Rg.Top 'Largeur de l'image Image.Width = Largeur 'Hauteur de l'image Image.Height = Hauteur 'Est-ce que l'image doit se déplacer avec les cellules 'voici les 3 constantes possibles .Placement = xlFreeFloating 'or xlmove or xlMoveAndSize 'Verrouillé ou pas .Locked = True 'or False End With Set Rg = Nothing End Sub '-------------------------------------------------------------- MichD
MichD
Dans la procédure "InsérerImage", si tu veux donner un nom à l'image que tu viens d'insérer, tu ajoutes la ligne de code suivante. Évidemment, tu ne peux pas donner le même nom à plus d'une image... .Locked = True 'or False 'Si tu veux donner un nouveau nom à ton image... .Name = "MichD" 'OU Worksheets(Feuille).range("A1") <<<<======= MichD
Dans la procédure "InsérerImage", si tu veux donner un nom à l'image que tu viens d'insérer, tu
ajoutes la ligne de code suivante. Évidemment, tu ne peux pas donner le même nom à plus d'une
image...
.Locked = True 'or False
'Si tu veux donner un nouveau nom à ton image...
.Name = "MichD" 'OU Worksheets(Feuille).range("A1") <<<<=======
MichD
Dans la procédure "InsérerImage", si tu veux donner un nom à l'image que tu viens d'insérer, tu ajoutes la ligne de code suivante. Évidemment, tu ne peux pas donner le même nom à plus d'une image... .Locked = True 'or False 'Si tu veux donner un nouveau nom à ton image... .Name = "MichD" 'OU Worksheets(Feuille).range("A1") <<<<======= MichD
| l'image ne "suivait" pas le fichier si je le transférais sur une autre machine **** Je suis surpris d'entendre cela! Peux-tu publier "ta" procédure que tu utilisais? Celle que je suggère s'enregistre dans le fichier. Elle n'est pas liée, mais incorporée. MichD
| l'image ne "suivait" pas le fichier si je le transférais sur une autre machine
**** Je suis surpris d'entendre cela! Peux-tu publier "ta" procédure que tu utilisais? Celle
que je suggère s'enregistre dans le fichier. Elle n'est pas liée, mais incorporée.
| l'image ne "suivait" pas le fichier si je le transférais sur une autre machine **** Je suis surpris d'entendre cela! Peux-tu publier "ta" procédure que tu utilisais? Celle que je suggère s'enregistre dans le fichier. Elle n'est pas liée, mais incorporée. MichD
Bonjour, Ce code ressemble à celui que tu as publié. Il ne devrait pas te poser problème. L'image est insérée dans le fichier. Essaie ceci dans un tout nouveau fichier afin d'éliminer d'autres sources de liens possibles dans ton fichier. Je joins un fichier exemple où j'ai inséré une image à partir de la procédure en module 1 du classeur. http://www.cjoint.com/c/GCdmF0ViiMi Éprouves-tu une difficulté quelconque avec ce fichier? '------------------------------------------------- Sub test() Dim Img As Picture With ActiveSheet Set Img = .Pictures.Insert _ ("C:UsersmichdPicturesSpotBright350198539584221898landscape.jpg") End With With Img .Name = "Signature" .Left = Range("Signature").Left .Top = Range("Signature").Top .ShapeRange("Signature").LockAspectRatio = msoFalse .Height = Range("Signature").Height - 0.5 .Width = Range("Signature").Width End With End Sub '------------------------------------------------- MichD
Bonjour,
Ce code ressemble à celui que tu as publié. Il ne devrait pas te poser
problème. L'image est insérée dans le fichier. Essaie ceci dans un tout
nouveau fichier afin d'éliminer d'autres sources de liens possibles dans ton
fichier.
Je joins un fichier exemple où j'ai inséré une image à partir de la
procédure en module 1 du classeur.
http://www.cjoint.com/c/GCdmF0ViiMi
Éprouves-tu une difficulté quelconque avec ce fichier?
'-------------------------------------------------
Sub test()
Dim Img As Picture
With ActiveSheet
Set Img = .Pictures.Insert _
("C:UsersmichdPicturesSpotBright350198539584221898landscape.jpg")
End With
With Img
.Name = "Signature"
.Left = Range("Signature").Left
.Top = Range("Signature").Top
.ShapeRange("Signature").LockAspectRatio = msoFalse
.Height = Range("Signature").Height - 0.5
.Width = Range("Signature").Width
End With
End Sub
'-------------------------------------------------
Bonjour, Ce code ressemble à celui que tu as publié. Il ne devrait pas te poser problème. L'image est insérée dans le fichier. Essaie ceci dans un tout nouveau fichier afin d'éliminer d'autres sources de liens possibles dans ton fichier. Je joins un fichier exemple où j'ai inséré une image à partir de la procédure en module 1 du classeur. http://www.cjoint.com/c/GCdmF0ViiMi Éprouves-tu une difficulté quelconque avec ce fichier? '------------------------------------------------- Sub test() Dim Img As Picture With ActiveSheet Set Img = .Pictures.Insert _ ("C:UsersmichdPicturesSpotBright350198539584221898landscape.jpg") End With With Img .Name = "Signature" .Left = Range("Signature").Left .Top = Range("Signature").Top .ShapeRange("Signature").LockAspectRatio = msoFalse .Height = Range("Signature").Height - 0.5 .Width = Range("Signature").Width End With End Sub '------------------------------------------------- MichD
News.aioe.org
Bonjour, Ce code ressemble à celui que tu as publié. Il ne devrait pas te poser problème. L'image est insérée dans le fichier. Essaie ceci dans un tout nouveau fichier afin d'éliminer d'autres sources de liens possibles dans ton fichier. Je joins un fichier exemple où j'ai inséré une image à partir de la procédure en module 1 du classeur. http://www.cjoint.com/c/GCdmF0ViiMi Éprouves-tu une difficulté quelconque avec ce fichier? '------------------------------------------------- Sub test() Dim Img As Picture With ActiveSheet Set Img = .Pictures.Insert _ ("C:UsersmichdPicturesSpotBright350198539584221898landscape.jpg") End With With Img .Name = "Signature" .Left = Range("Signature").Left .Top = Range("Signature").Top .ShapeRange("Signature").LockAspectRatio = msoFalse .Height = Range("Signature").Height - 0.5 .Width = Range("Signature").Width End With End Sub '------------------------------------------------- MichD
Bonjour,
Ce code ressemble à celui que tu as publié. Il ne devrait pas te poser
problème. L'image est insérée dans le fichier. Essaie ceci dans un tout
nouveau fichier afin d'éliminer d'autres sources de liens possibles dans ton
fichier.
Je joins un fichier exemple où j'ai inséré une image à partir de la
procédure en module 1 du classeur.
http://www.cjoint.com/c/GCdmF0ViiMi
Éprouves-tu une difficulté quelconque avec ce fichier?
'-------------------------------------------------
Sub test()
Dim Img As Picture
With ActiveSheet
Set Img = .Pictures.Insert _
("C:UsersmichdPicturesSpotBright350198539584221898landscape.jpg")
End With
With Img
.Name = "Signature"
.Left = Range("Signature").Left
.Top = Range("Signature").Top
.ShapeRange("Signature").LockAspectRatio = msoFalse
.Height = Range("Signature").Height - 0.5
.Width = Range("Signature").Width
End With
End Sub
'-------------------------------------------------
Bonjour, Ce code ressemble à celui que tu as publié. Il ne devrait pas te poser problème. L'image est insérée dans le fichier. Essaie ceci dans un tout nouveau fichier afin d'éliminer d'autres sources de liens possibles dans ton fichier. Je joins un fichier exemple où j'ai inséré une image à partir de la procédure en module 1 du classeur. http://www.cjoint.com/c/GCdmF0ViiMi Éprouves-tu une difficulté quelconque avec ce fichier? '------------------------------------------------- Sub test() Dim Img As Picture With ActiveSheet Set Img = .Pictures.Insert _ ("C:UsersmichdPicturesSpotBright350198539584221898landscape.jpg") End With With Img .Name = "Signature" .Left = Range("Signature").Left .Top = Range("Signature").Top .ShapeRange("Signature").LockAspectRatio = msoFalse .Height = Range("Signature").Height - 0.5 .Width = Range("Signature").Width End With End Sub '------------------------------------------------- MichD
Bonjour Thierry, Je viens d'apprendre quelque chose ou j'ai oublié.... Bien sûr, il y a ta suggestion qui permet d'utiliser les arguments définis dans l'aide en ligne : https://msdn.microsoft.com/fr-fr/library/office/ff198302(v=office.15).aspx expression.AddPicture(Filename, LinkToFile, SaveWithDocument, Left, Top, Width, Height) OU On peut modifié la macro comme ceci et cela devrait aller : '----------------------------------------------------- Sub test() Dim Img As Picture With ActiveSheet Set Img = .Pictures.Insert _ ("C:UsersmichdPicturesSpotBright350198539584221898landscape.jpg") End With With Img .Name = "MichD" .Left = Range("Signature").Left .Top = Range("Signature").Top .ShapeRange(.Name).LockAspectRatio = msoFalse .Height = Range("Signature").Height - 0.5 .Width = Range("Signature").Width .Copy .Delete Worksheets(.Parent.Name).PasteSpecial Format:="Picture (JPEG)", _ Link:úlse, DisplayAsIcon:úlse End With End Sub '----------------------------------------------------- MichD
Bonjour Thierry,
Je viens d'apprendre quelque chose ou j'ai oublié....
Bien sûr, il y a ta suggestion qui permet d'utiliser les arguments définis
dans l'aide en ligne :
https://msdn.microsoft.com/fr-fr/library/office/ff198302(v=office.15).aspx
expression.AddPicture(Filename, LinkToFile, SaveWithDocument, Left, Top,
Width, Height)
OU
On peut modifié la macro comme ceci et cela devrait aller :
'-----------------------------------------------------
Sub test()
Dim Img As Picture
With ActiveSheet
Set Img = .Pictures.Insert _
("C:UsersmichdPicturesSpotBright350198539584221898landscape.jpg")
End With
With Img
.Name = "MichD"
.Left = Range("Signature").Left
.Top = Range("Signature").Top
.ShapeRange(.Name).LockAspectRatio = msoFalse
.Height = Range("Signature").Height - 0.5
.Width = Range("Signature").Width
.Copy
.Delete
Worksheets(.Parent.Name).PasteSpecial Format:="Picture (JPEG)", _
Link:úlse, DisplayAsIcon:úlse
End With
End Sub
'-----------------------------------------------------
Bonjour Thierry, Je viens d'apprendre quelque chose ou j'ai oublié.... Bien sûr, il y a ta suggestion qui permet d'utiliser les arguments définis dans l'aide en ligne : https://msdn.microsoft.com/fr-fr/library/office/ff198302(v=office.15).aspx expression.AddPicture(Filename, LinkToFile, SaveWithDocument, Left, Top, Width, Height) OU On peut modifié la macro comme ceci et cela devrait aller : '----------------------------------------------------- Sub test() Dim Img As Picture With ActiveSheet Set Img = .Pictures.Insert _ ("C:UsersmichdPicturesSpotBright350198539584221898landscape.jpg") End With With Img .Name = "MichD" .Left = Range("Signature").Left .Top = Range("Signature").Top .ShapeRange(.Name).LockAspectRatio = msoFalse .Height = Range("Signature").Height - 0.5 .Width = Range("Signature").Width .Copy .Delete Worksheets(.Parent.Name).PasteSpecial Format:="Picture (JPEG)", _ Link:úlse, DisplayAsIcon:úlse End With End Sub '----------------------------------------------------- MichD