Macro insertion image, directement en arrière-plan ?
4 réponses
fifigim
Bonjour,
J'avais posé cette question il a un quelques jours, mais suite aux problèmes
du forum, je n'ai pas eu de réponses, et ma question s'est "perdu"...
Donc, j'ai une macro "insertion image", qui fonctionne très bien, cependant,
je souhaiterai que l'image, lors de son apparition sur ma feuille, soit
disposée directement en arrière-plan. En effet, lors de son apparition, elle
s'insère de suite au premier plan, masquant donc des informations utiles
disposées derrière elle.
Je peux évidement faire un clic droit sur l'image, et "ordre", puis "en
arrière-plan", mais si je peux m'éviter cette manoeuvre, cela serait plus
pratique.
Merci d'avance.
ps : ma macro "insertion image", à laquelle il manque donc le concept "
arrière plan" :
Application.ScreenUpdating = False
Set Sh = Worksheets("Feuille1").Shapes("Image 10").Duplicate
Sh.CopyPicture
With Worksheets("Feuille2")
.Activate
.Paste
With .Range("a10:g30")
Selection.Top = .Top
Selection.Left = .Left
Selection.Height = .Height
Selection.Width = .Width
.Select
End With
End With
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Michel Pierron
Bonjour fifigim; Tu dois utiliser la propriété SetBackgroundPicture pour l'arrière plan.
MP
"fifigim" a écrit dans le message de news:
Bonjour,
J'avais posé cette question il a un quelques jours, mais suite aux problèmes
du forum, je n'ai pas eu de réponses, et ma question s'est "perdu"...
Donc, j'ai une macro "insertion image", qui fonctionne très bien, cependant,
je souhaiterai que l'image, lors de son apparition sur ma feuille, soit disposée directement en arrière-plan. En effet, lors de son apparition, elle
s'insère de suite au premier plan, masquant donc des informations utiles disposées derrière elle. Je peux évidement faire un clic droit sur l'image, et "ordre", puis "en arrière-plan", mais si je peux m'éviter cette manoeuvre, cela serait plus pratique.
Merci d'avance.
ps : ma macro "insertion image", à laquelle il manque donc le concept " arrière plan" :
Application.ScreenUpdating = False Set Sh = Worksheets("Feuille1").Shapes("Image 10").Duplicate Sh.CopyPicture
With Worksheets("Feuille2") .Activate .Paste With .Range("a10:g30") Selection.Top = .Top Selection.Left = .Left Selection.Height = .Height Selection.Width = .Width .Select End With End With
Bonjour fifigim;
Tu dois utiliser la propriété SetBackgroundPicture pour l'arrière plan.
MP
"fifigim" <fifigim@discussions.microsoft.com> a écrit dans le message de
news: F6053AD2-167C-44EE-B376-D608FAC2DBF1@microsoft.com...
Bonjour,
J'avais posé cette question il a un quelques jours, mais suite aux
problèmes
du forum, je n'ai pas eu de réponses, et ma question s'est "perdu"...
Donc, j'ai une macro "insertion image", qui fonctionne très bien,
cependant,
je souhaiterai que l'image, lors de son apparition sur ma feuille, soit
disposée directement en arrière-plan. En effet, lors de son apparition,
elle
s'insère de suite au premier plan, masquant donc des informations utiles
disposées derrière elle.
Je peux évidement faire un clic droit sur l'image, et "ordre", puis "en
arrière-plan", mais si je peux m'éviter cette manoeuvre, cela serait plus
pratique.
Merci d'avance.
ps : ma macro "insertion image", à laquelle il manque donc le concept "
arrière plan" :
Application.ScreenUpdating = False
Set Sh = Worksheets("Feuille1").Shapes("Image 10").Duplicate
Sh.CopyPicture
With Worksheets("Feuille2")
.Activate
.Paste
With .Range("a10:g30")
Selection.Top = .Top
Selection.Left = .Left
Selection.Height = .Height
Selection.Width = .Width
.Select
End With
End With
Bonjour fifigim; Tu dois utiliser la propriété SetBackgroundPicture pour l'arrière plan.
MP
"fifigim" a écrit dans le message de news:
Bonjour,
J'avais posé cette question il a un quelques jours, mais suite aux problèmes
du forum, je n'ai pas eu de réponses, et ma question s'est "perdu"...
Donc, j'ai une macro "insertion image", qui fonctionne très bien, cependant,
je souhaiterai que l'image, lors de son apparition sur ma feuille, soit disposée directement en arrière-plan. En effet, lors de son apparition, elle
s'insère de suite au premier plan, masquant donc des informations utiles disposées derrière elle. Je peux évidement faire un clic droit sur l'image, et "ordre", puis "en arrière-plan", mais si je peux m'éviter cette manoeuvre, cela serait plus pratique.
Merci d'avance.
ps : ma macro "insertion image", à laquelle il manque donc le concept " arrière plan" :
Application.ScreenUpdating = False Set Sh = Worksheets("Feuille1").Shapes("Image 10").Duplicate Sh.CopyPicture
With Worksheets("Feuille2") .Activate .Paste With .Range("a10:g30") Selection.Top = .Top Selection.Left = .Left Selection.Height = .Height Selection.Width = .Width .Select End With End With
fifigim
Désolé de ne pas être un vrai pro des macros, mais je la met où cette propriété "SetBackgroundPicture" dans ma macro ??
Merci encore
Bonjour fifigim; Tu dois utiliser la propriété SetBackgroundPicture pour l'arrière plan.
MP
"fifigim" a écrit dans le message de news:
Bonjour,
J'avais posé cette question il a un quelques jours, mais suite aux problèmes
du forum, je n'ai pas eu de réponses, et ma question s'est "perdu"...
Donc, j'ai une macro "insertion image", qui fonctionne très bien, cependant,
je souhaiterai que l'image, lors de son apparition sur ma feuille, soit disposée directement en arrière-plan. En effet, lors de son apparition, elle
s'insère de suite au premier plan, masquant donc des informations utiles disposées derrière elle. Je peux évidement faire un clic droit sur l'image, et "ordre", puis "en arrière-plan", mais si je peux m'éviter cette manoeuvre, cela serait plus pratique.
Merci d'avance.
ps : ma macro "insertion image", à laquelle il manque donc le concept " arrière plan" :
Application.ScreenUpdating = False Set Sh = Worksheets("Feuille1").Shapes("Image 10").Duplicate Sh.CopyPicture
With Worksheets("Feuille2") .Activate .Paste With .Range("a10:g30") Selection.Top = .Top Selection.Left = .Left Selection.Height = .Height Selection.Width = .Width .Select End With End With
Désolé de ne pas être un vrai pro des macros, mais je la met où cette
propriété "SetBackgroundPicture" dans ma macro ??
Merci encore
Bonjour fifigim;
Tu dois utiliser la propriété SetBackgroundPicture pour l'arrière plan.
MP
"fifigim" <fifigim@discussions.microsoft.com> a écrit dans le message de
news: F6053AD2-167C-44EE-B376-D608FAC2DBF1@microsoft.com...
Bonjour,
J'avais posé cette question il a un quelques jours, mais suite aux
problèmes
du forum, je n'ai pas eu de réponses, et ma question s'est "perdu"...
Donc, j'ai une macro "insertion image", qui fonctionne très bien,
cependant,
je souhaiterai que l'image, lors de son apparition sur ma feuille, soit
disposée directement en arrière-plan. En effet, lors de son apparition,
elle
s'insère de suite au premier plan, masquant donc des informations utiles
disposées derrière elle.
Je peux évidement faire un clic droit sur l'image, et "ordre", puis "en
arrière-plan", mais si je peux m'éviter cette manoeuvre, cela serait plus
pratique.
Merci d'avance.
ps : ma macro "insertion image", à laquelle il manque donc le concept "
arrière plan" :
Application.ScreenUpdating = False
Set Sh = Worksheets("Feuille1").Shapes("Image 10").Duplicate
Sh.CopyPicture
With Worksheets("Feuille2")
.Activate
.Paste
With .Range("a10:g30")
Selection.Top = .Top
Selection.Left = .Left
Selection.Height = .Height
Selection.Width = .Width
.Select
End With
End With
Désolé de ne pas être un vrai pro des macros, mais je la met où cette propriété "SetBackgroundPicture" dans ma macro ??
Merci encore
Bonjour fifigim; Tu dois utiliser la propriété SetBackgroundPicture pour l'arrière plan.
MP
"fifigim" a écrit dans le message de news:
Bonjour,
J'avais posé cette question il a un quelques jours, mais suite aux problèmes
du forum, je n'ai pas eu de réponses, et ma question s'est "perdu"...
Donc, j'ai une macro "insertion image", qui fonctionne très bien, cependant,
je souhaiterai que l'image, lors de son apparition sur ma feuille, soit disposée directement en arrière-plan. En effet, lors de son apparition, elle
s'insère de suite au premier plan, masquant donc des informations utiles disposées derrière elle. Je peux évidement faire un clic droit sur l'image, et "ordre", puis "en arrière-plan", mais si je peux m'éviter cette manoeuvre, cela serait plus pratique.
Merci d'avance.
ps : ma macro "insertion image", à laquelle il manque donc le concept " arrière plan" :
Application.ScreenUpdating = False Set Sh = Worksheets("Feuille1").Shapes("Image 10").Duplicate Sh.CopyPicture
With Worksheets("Feuille2") .Activate .Paste With .Range("a10:g30") Selection.Top = .Top Selection.Left = .Left Selection.Height = .Height Selection.Width = .Width .Select End With End With
Michel Pierron
Re fifigim; Apparemment, tes images sont déjà dans une feuille de ton classeur; tu ne peux donc pas le faire directement car la propriété SetBackgroundPicture nécessite de pointer sur un fichier d'image. Tu peux t'en sortir comme ceci:
' En tête de ton module, les déclarations suivantes: Private Type GUID Data1 As Long Data2 As Integer Data3 As Integer Data4(7) As Byte End Type
Private Type PicDesc Size As Long Type As Long hBmp As Long End Type
Private Declare Function OpenClipboard& _ Lib "user32" (ByVal hwnd&) Private Declare Function EmptyClipboard& _ Lib "user32" () Private Declare Function GetClipboardData& _ Lib "user32" (ByVal wFormat%) Private Declare Function CloseClipboard& Lib "user32" () Private Declare Function OleCreatePictureIndirect& _ Lib "olepro32.dll" (pDesc As PicDesc, RefIID As GUID _ , ByVal fPictureOwnsHandle&, pPic As IPicture) Private Declare Function CopyImage& Lib "user32" _ (ByVal handle&, ByVal un1&, ByVal n1&, ByVal n2&, ByVal un2&)
Sub BackgroundPicture() Worksheets("Feuille2").Activate Range("A1").Select Worksheets("Feuille1").Shapes("Image 10").CopyPicture 1, 2 OpenClipboard 0& Dim PD As PicDesc, SP As StdPicture, GD As GUID GD.Data1 = &H20400: GD.Data4(0) = &HC0: GD.Data4(7) = &H46 PD.Size = Len(PD): PD.Type = 1 PD.hBmp = CopyImage(GetClipboardData(2), 0, 0, 0, &H4) OleCreatePictureIndirect PD, GD, False, SP CloseClipboard: SavePicture SP, "c:Recup.bmp" ActiveSheet.SetBackgroundPicture "c:Recup.bmp" OpenClipboard 0&: EmptyClipboard: CloseClipboard On Error Resume Next Kill "c:Recup.bmp" End Sub
MP
"fifigim" a écrit dans le message de news:
Désolé de ne pas être un vrai pro des macros, mais je la met où cette propriété "SetBackgroundPicture" dans ma macro ??
Merci encore
Bonjour fifigim; Tu dois utiliser la propriété SetBackgroundPicture pour l'arrière plan.
MP
"fifigim" a écrit dans le message de news:
Bonjour,
J'avais posé cette question il a un quelques jours, mais suite aux problèmes
du forum, je n'ai pas eu de réponses, et ma question s'est "perdu"...
Donc, j'ai une macro "insertion image", qui fonctionne très bien, cependant,
je souhaiterai que l'image, lors de son apparition sur ma feuille, soit
disposée directement en arrière-plan. En effet, lors de son apparition,
elle
s'insère de suite au premier plan, masquant donc des informations utiles
disposées derrière elle. Je peux évidement faire un clic droit sur l'image, et "ordre", puis "en
arrière-plan", mais si je peux m'éviter cette manoeuvre, cela serait plus
pratique.
Merci d'avance.
ps : ma macro "insertion image", à laquelle il manque donc le concept "
arrière plan" :
Application.ScreenUpdating = False Set Sh = Worksheets("Feuille1").Shapes("Image 10").Duplicate Sh.CopyPicture
With Worksheets("Feuille2") .Activate .Paste With .Range("a10:g30") Selection.Top = .Top Selection.Left = .Left Selection.Height = .Height Selection.Width = .Width .Select End With End With
Re fifigim;
Apparemment, tes images sont déjà dans une feuille de ton classeur; tu ne
peux donc pas le faire directement car la propriété SetBackgroundPicture
nécessite de pointer sur un fichier d'image. Tu peux t'en sortir comme ceci:
' En tête de ton module, les déclarations suivantes:
Private Type GUID
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(7) As Byte
End Type
Private Type PicDesc
Size As Long
Type As Long
hBmp As Long
End Type
Private Declare Function OpenClipboard& _
Lib "user32" (ByVal hwnd&)
Private Declare Function EmptyClipboard& _
Lib "user32" ()
Private Declare Function GetClipboardData& _
Lib "user32" (ByVal wFormat%)
Private Declare Function CloseClipboard& Lib "user32" ()
Private Declare Function OleCreatePictureIndirect& _
Lib "olepro32.dll" (pDesc As PicDesc, RefIID As GUID _
, ByVal fPictureOwnsHandle&, pPic As IPicture)
Private Declare Function CopyImage& Lib "user32" _
(ByVal handle&, ByVal un1&, ByVal n1&, ByVal n2&, ByVal un2&)
Sub BackgroundPicture()
Worksheets("Feuille2").Activate
Range("A1").Select
Worksheets("Feuille1").Shapes("Image 10").CopyPicture 1, 2
OpenClipboard 0&
Dim PD As PicDesc, SP As StdPicture, GD As GUID
GD.Data1 = &H20400: GD.Data4(0) = &HC0: GD.Data4(7) = &H46
PD.Size = Len(PD): PD.Type = 1
PD.hBmp = CopyImage(GetClipboardData(2), 0, 0, 0, &H4)
OleCreatePictureIndirect PD, GD, False, SP
CloseClipboard: SavePicture SP, "c:Recup.bmp"
ActiveSheet.SetBackgroundPicture "c:Recup.bmp"
OpenClipboard 0&: EmptyClipboard: CloseClipboard
On Error Resume Next
Kill "c:Recup.bmp"
End Sub
MP
"fifigim" <fifigim@discussions.microsoft.com> a écrit dans le message de
news: C223FC82-DB0B-41EA-BB4E-8C0A3E621F7B@microsoft.com...
Désolé de ne pas être un vrai pro des macros, mais je la met où cette
propriété "SetBackgroundPicture" dans ma macro ??
Merci encore
Bonjour fifigim;
Tu dois utiliser la propriété SetBackgroundPicture pour l'arrière plan.
MP
"fifigim" <fifigim@discussions.microsoft.com> a écrit dans le message de
news: F6053AD2-167C-44EE-B376-D608FAC2DBF1@microsoft.com...
Bonjour,
J'avais posé cette question il a un quelques jours, mais suite aux
problèmes
du forum, je n'ai pas eu de réponses, et ma question s'est "perdu"...
Donc, j'ai une macro "insertion image", qui fonctionne très bien,
cependant,
je souhaiterai que l'image, lors de son apparition sur ma feuille,
soit
disposée directement en arrière-plan. En effet, lors de son
apparition,
elle
s'insère de suite au premier plan, masquant donc des informations
utiles
disposées derrière elle.
Je peux évidement faire un clic droit sur l'image, et "ordre", puis
"en
arrière-plan", mais si je peux m'éviter cette manoeuvre, cela serait
plus
pratique.
Merci d'avance.
ps : ma macro "insertion image", à laquelle il manque donc le concept
"
arrière plan" :
Application.ScreenUpdating = False
Set Sh = Worksheets("Feuille1").Shapes("Image 10").Duplicate
Sh.CopyPicture
With Worksheets("Feuille2")
.Activate
.Paste
With .Range("a10:g30")
Selection.Top = .Top
Selection.Left = .Left
Selection.Height = .Height
Selection.Width = .Width
.Select
End With
End With
Re fifigim; Apparemment, tes images sont déjà dans une feuille de ton classeur; tu ne peux donc pas le faire directement car la propriété SetBackgroundPicture nécessite de pointer sur un fichier d'image. Tu peux t'en sortir comme ceci:
' En tête de ton module, les déclarations suivantes: Private Type GUID Data1 As Long Data2 As Integer Data3 As Integer Data4(7) As Byte End Type
Private Type PicDesc Size As Long Type As Long hBmp As Long End Type
Private Declare Function OpenClipboard& _ Lib "user32" (ByVal hwnd&) Private Declare Function EmptyClipboard& _ Lib "user32" () Private Declare Function GetClipboardData& _ Lib "user32" (ByVal wFormat%) Private Declare Function CloseClipboard& Lib "user32" () Private Declare Function OleCreatePictureIndirect& _ Lib "olepro32.dll" (pDesc As PicDesc, RefIID As GUID _ , ByVal fPictureOwnsHandle&, pPic As IPicture) Private Declare Function CopyImage& Lib "user32" _ (ByVal handle&, ByVal un1&, ByVal n1&, ByVal n2&, ByVal un2&)
Sub BackgroundPicture() Worksheets("Feuille2").Activate Range("A1").Select Worksheets("Feuille1").Shapes("Image 10").CopyPicture 1, 2 OpenClipboard 0& Dim PD As PicDesc, SP As StdPicture, GD As GUID GD.Data1 = &H20400: GD.Data4(0) = &HC0: GD.Data4(7) = &H46 PD.Size = Len(PD): PD.Type = 1 PD.hBmp = CopyImage(GetClipboardData(2), 0, 0, 0, &H4) OleCreatePictureIndirect PD, GD, False, SP CloseClipboard: SavePicture SP, "c:Recup.bmp" ActiveSheet.SetBackgroundPicture "c:Recup.bmp" OpenClipboard 0&: EmptyClipboard: CloseClipboard On Error Resume Next Kill "c:Recup.bmp" End Sub
MP
"fifigim" a écrit dans le message de news:
Désolé de ne pas être un vrai pro des macros, mais je la met où cette propriété "SetBackgroundPicture" dans ma macro ??
Merci encore
Bonjour fifigim; Tu dois utiliser la propriété SetBackgroundPicture pour l'arrière plan.
MP
"fifigim" a écrit dans le message de news:
Bonjour,
J'avais posé cette question il a un quelques jours, mais suite aux problèmes
du forum, je n'ai pas eu de réponses, et ma question s'est "perdu"...
Donc, j'ai une macro "insertion image", qui fonctionne très bien, cependant,
je souhaiterai que l'image, lors de son apparition sur ma feuille, soit
disposée directement en arrière-plan. En effet, lors de son apparition,
elle
s'insère de suite au premier plan, masquant donc des informations utiles
disposées derrière elle. Je peux évidement faire un clic droit sur l'image, et "ordre", puis "en
arrière-plan", mais si je peux m'éviter cette manoeuvre, cela serait plus
pratique.
Merci d'avance.
ps : ma macro "insertion image", à laquelle il manque donc le concept "
arrière plan" :
Application.ScreenUpdating = False Set Sh = Worksheets("Feuille1").Shapes("Image 10").Duplicate Sh.CopyPicture
With Worksheets("Feuille2") .Activate .Paste With .Range("a10:g30") Selection.Top = .Top Selection.Left = .Left Selection.Height = .Height Selection.Width = .Width .Select End With End With
michdenis
Bonjour Fifigim,
Attention, les manipulations que tu as décrites sont effectives si tu as une supposition d'images ou d'objet. Dans le cas qui nous occupe, si tu désires insérer une image en arrière plan de la feuille de calcul, Tu dois utiliser cette commande : ActiveSheet.SetBackgroundPicture Filename:= "C:CheminMonImage.JPG"
L'image couvre l'ensemble de la feuille et non seulement une section définie de celle-ci.
Cependant, si tu as une supperpostion d'images, tu peux utiliser la propriété "ZOrder" pour définir laquelle des images se retrouvent en dessus.
Dans ce dernier cas, tu pourrais modifier ta macro très légèrement comme ceci :
Ta macro serait transformée comme ceci : '------------------------------ Application.ScreenUpdating = False Set sh = Worksheets("Feuil1").Shapes("Image 1").Duplicate sh.CopyPicture
With Worksheets("Feuil2") .Activate .Paste With .Range("a10:g30") Selection.Top = .Top Selection.Left = .Left Selection.Height = .Height Selection.Width = .Width .Select End With sh.ZOrder msoSendToBack End With '------------------------------
Salutations!
"fifigim" a écrit dans le message de news: Désolé de ne pas être un vrai pro des macros, mais je la met où cette propriété "SetBackgroundPicture" dans ma macro ??
Merci encore
Bonjour fifigim; Tu dois utiliser la propriété SetBackgroundPicture pour l'arrière plan.
MP
"fifigim" a écrit dans le message de news:
Bonjour,
J'avais posé cette question il a un quelques jours, mais suite aux problèmes
du forum, je n'ai pas eu de réponses, et ma question s'est "perdu"...
Donc, j'ai une macro "insertion image", qui fonctionne très bien, cependant,
je souhaiterai que l'image, lors de son apparition sur ma feuille, soit disposée directement en arrière-plan. En effet, lors de son apparition, elle
s'insère de suite au premier plan, masquant donc des informations utiles disposées derrière elle. Je peux évidement faire un clic droit sur l'image, et "ordre", puis "en arrière-plan", mais si je peux m'éviter cette manoeuvre, cela serait plus pratique.
Merci d'avance.
ps : ma macro "insertion image", à laquelle il manque donc le concept " arrière plan" :
Application.ScreenUpdating = False Set Sh = Worksheets("Feuille1").Shapes("Image 10").Duplicate Sh.CopyPicture
With Worksheets("Feuille2") .Activate .Paste With .Range("a10:g30") Selection.Top = .Top Selection.Left = .Left Selection.Height = .Height Selection.Width = .Width .Select End With End With
Bonjour Fifigim,
Attention, les manipulations que tu as décrites sont effectives si tu as une supposition d'images ou d'objet.
Dans le cas qui nous occupe, si tu désires insérer une image en arrière plan de la feuille de calcul,
Tu dois utiliser cette commande :
ActiveSheet.SetBackgroundPicture Filename:= "C:CheminMonImage.JPG"
L'image couvre l'ensemble de la feuille et non seulement une section définie de celle-ci.
Cependant, si tu as une supperpostion d'images, tu peux utiliser la propriété "ZOrder"
pour définir laquelle des images se retrouvent en dessus.
Dans ce dernier cas, tu pourrais modifier ta macro très légèrement comme ceci :
Ta macro serait transformée comme ceci :
'------------------------------
Application.ScreenUpdating = False
Set sh = Worksheets("Feuil1").Shapes("Image 1").Duplicate
sh.CopyPicture
With Worksheets("Feuil2")
.Activate
.Paste
With .Range("a10:g30")
Selection.Top = .Top
Selection.Left = .Left
Selection.Height = .Height
Selection.Width = .Width
.Select
End With
sh.ZOrder msoSendToBack
End With
'------------------------------
Salutations!
"fifigim" <fifigim@discussions.microsoft.com> a écrit dans le message de news: C223FC82-DB0B-41EA-BB4E-8C0A3E621F7B@microsoft.com...
Désolé de ne pas être un vrai pro des macros, mais je la met où cette
propriété "SetBackgroundPicture" dans ma macro ??
Merci encore
Bonjour fifigim;
Tu dois utiliser la propriété SetBackgroundPicture pour l'arrière plan.
MP
"fifigim" <fifigim@discussions.microsoft.com> a écrit dans le message de
news: F6053AD2-167C-44EE-B376-D608FAC2DBF1@microsoft.com...
Bonjour,
J'avais posé cette question il a un quelques jours, mais suite aux
problèmes
du forum, je n'ai pas eu de réponses, et ma question s'est "perdu"...
Donc, j'ai une macro "insertion image", qui fonctionne très bien,
cependant,
je souhaiterai que l'image, lors de son apparition sur ma feuille, soit
disposée directement en arrière-plan. En effet, lors de son apparition,
elle
s'insère de suite au premier plan, masquant donc des informations utiles
disposées derrière elle.
Je peux évidement faire un clic droit sur l'image, et "ordre", puis "en
arrière-plan", mais si je peux m'éviter cette manoeuvre, cela serait plus
pratique.
Merci d'avance.
ps : ma macro "insertion image", à laquelle il manque donc le concept "
arrière plan" :
Application.ScreenUpdating = False
Set Sh = Worksheets("Feuille1").Shapes("Image 10").Duplicate
Sh.CopyPicture
With Worksheets("Feuille2")
.Activate
.Paste
With .Range("a10:g30")
Selection.Top = .Top
Selection.Left = .Left
Selection.Height = .Height
Selection.Width = .Width
.Select
End With
End With
Attention, les manipulations que tu as décrites sont effectives si tu as une supposition d'images ou d'objet. Dans le cas qui nous occupe, si tu désires insérer une image en arrière plan de la feuille de calcul, Tu dois utiliser cette commande : ActiveSheet.SetBackgroundPicture Filename:= "C:CheminMonImage.JPG"
L'image couvre l'ensemble de la feuille et non seulement une section définie de celle-ci.
Cependant, si tu as une supperpostion d'images, tu peux utiliser la propriété "ZOrder" pour définir laquelle des images se retrouvent en dessus.
Dans ce dernier cas, tu pourrais modifier ta macro très légèrement comme ceci :
Ta macro serait transformée comme ceci : '------------------------------ Application.ScreenUpdating = False Set sh = Worksheets("Feuil1").Shapes("Image 1").Duplicate sh.CopyPicture
With Worksheets("Feuil2") .Activate .Paste With .Range("a10:g30") Selection.Top = .Top Selection.Left = .Left Selection.Height = .Height Selection.Width = .Width .Select End With sh.ZOrder msoSendToBack End With '------------------------------
Salutations!
"fifigim" a écrit dans le message de news: Désolé de ne pas être un vrai pro des macros, mais je la met où cette propriété "SetBackgroundPicture" dans ma macro ??
Merci encore
Bonjour fifigim; Tu dois utiliser la propriété SetBackgroundPicture pour l'arrière plan.
MP
"fifigim" a écrit dans le message de news:
Bonjour,
J'avais posé cette question il a un quelques jours, mais suite aux problèmes
du forum, je n'ai pas eu de réponses, et ma question s'est "perdu"...
Donc, j'ai une macro "insertion image", qui fonctionne très bien, cependant,
je souhaiterai que l'image, lors de son apparition sur ma feuille, soit disposée directement en arrière-plan. En effet, lors de son apparition, elle
s'insère de suite au premier plan, masquant donc des informations utiles disposées derrière elle. Je peux évidement faire un clic droit sur l'image, et "ordre", puis "en arrière-plan", mais si je peux m'éviter cette manoeuvre, cela serait plus pratique.
Merci d'avance.
ps : ma macro "insertion image", à laquelle il manque donc le concept " arrière plan" :
Application.ScreenUpdating = False Set Sh = Worksheets("Feuille1").Shapes("Image 10").Duplicate Sh.CopyPicture
With Worksheets("Feuille2") .Activate .Paste With .Range("a10:g30") Selection.Top = .Top Selection.Left = .Left Selection.Height = .Height Selection.Width = .Width .Select End With End With