Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

dupliquer une image d'une feuille à l'autre

6 réponses
Avatar
Dude
Hello tout le monde.

Quelqu'un aurait-il une suggestion pour dupliquer une image qui se trouve en
feuille 1 sur la feuille 2, le tout sans activer la feuille 2 et en plaçant
le duplicata dans le coin supérieur gauche de la feuille 2 ?

Merci pour votre aide :)

6 réponses

Avatar
papou
Bonjour
La copie par défaut aura lieu à l'endroit que tu souhaites
Sub CopieImage()
Feuil1.Shapes("Image 1").Copy
Feuil2.Paste
End Sub
Cordialement
Pascal

"Dude" a écrit dans le message de news:

Hello tout le monde.

Quelqu'un aurait-il une suggestion pour dupliquer une image qui se trouve
en feuille 1 sur la feuille 2, le tout sans activer la feuille 2 et en
plaçant le duplicata dans le coin supérieur gauche de la feuille 2 ?

Merci pour votre aide :)



Avatar
Gaenonius
Quelque chose dans ce goût-là, en supposant que tu connais le nom de l'image à
copier (l'activation de la feuille 2 sert juste à déselectionner l'image copiée,
tu peux t'en passer si cette sélection après la copie est sans importance pour
toi) :

Sub CopieImage()
Sheets("Feuil1").Shapes("Image 1").Copy
With Sheets("Feuil2")
.Paste
.Shapes(.Shapes.Count).Top = 0
.Shapes(.Shapes.Count).Left = 0
End With
Application.ScreenUpdating = False
Sheets("Feuil2").Select
Range("A1").Select
Sheets("Feuil1").Select
End Sub

--
Gaenonius

Hello tout le monde.

Quelqu'un aurait-il une suggestion pour dupliquer une image qui se trouve en
feuille 1 sur la feuille 2, le tout sans activer la feuille 2 et en plaçant
le duplicata dans le coin supérieur gauche de la feuille 2 ?

Merci pour votre aide :)




Avatar
MichDenis
Bonjour Dude,

Adapte le nom des feuilles et de la cellule (range) sur la feuille 2 qui doit servir de guide pour la location de ton
image sur cette dernière.

'------------------------------------
Sub CopierUneImage()

Dim F As String, Sh As Object

F = ActiveSheet.Name
Application.ScreenUpdating = False
With Worksheets("Feuil1").Shapes("Picture 1")
.Copy
End With

With Worksheets("Feuil2")
.Activate
.Paste
Set Sh = Selection
Sh.Left = .Range("a10").Left
Sh.Top = .Range("a10").Top
.Range(Sh.BottomRightCell.Address).Activate
End With

Worksheets(F).Activate

End Sub
'------------------------------------


Salutations!


"Dude" a écrit dans le message de news:
Hello tout le monde.

Quelqu'un aurait-il une suggestion pour dupliquer une image qui se trouve en
feuille 1 sur la feuille 2, le tout sans activer la feuille 2 et en plaçant
le duplicata dans le coin supérieur gauche de la feuille 2 ?

Merci pour votre aide :)
Avatar
Dude
merci pour l'info. C'est idiot mais je ne connaissais pas l'instruction
FeuilX.Paste.

en revanche l'endroit où est copié l'image dépend de la cellule active sur
la feuille 2 chez moi.
J'ai corrigé le problème avec les instructions supplémentaires :
Feuil2.Shapes("Image 1").Top = 0
... .Left = 0

en tout cas sympa le coup de main.

"papou" <cestpasbon@çanonplus44.fr> wrote in message
news:%
Bonjour
La copie par défaut aura lieu à l'endroit que tu souhaites
Sub CopieImage()
Feuil1.Shapes("Image 1").Copy
Feuil2.Paste
End Sub
Cordialement
Pascal

"Dude" a écrit dans le message de news:

Hello tout le monde.

Quelqu'un aurait-il une suggestion pour dupliquer une image qui se trouve
en feuille 1 sur la feuille 2, le tout sans activer la feuille 2 et en
plaçant le duplicata dans le coin supérieur gauche de la feuille 2 ?

Merci pour votre aide :)







Avatar
Dude
Thanks MichDenis

l'inconvénient avec cet extrait de code (j'utilisais quelque chose d'à peu
près équivalent), c'est qu'il active la feuille 2 (même si ce n'est pas
visible lors de l'éxécution de la macro), or j'ai des macros, parfois
longues, qui se déclenchent à l'activation de certaines feuilles, d'où ma
question... Ceci est également vrai de la solution de Garnonius.

Je cherchais une solution du type
set oImage = feuil1.Shapes("Image 1")
feuil2.Shapes.add (oImage, 0,0)....
mais cela ne foncitonne pas.

Cela dit la solution de papou est bien, et franchement je me sens bête de ne
pas y avoir pensé plus tôt...

A peluche Excel Addicts :)

Dude


"MichDenis" wrote in message
news:%

Bonjour Dude,

Adapte le nom des feuilles et de la cellule (range) sur la feuille 2 qui
doit servir de guide pour la location de ton
image sur cette dernière.

'------------------------------------
Sub CopierUneImage()

Dim F As String, Sh As Object

F = ActiveSheet.Name
Application.ScreenUpdating = False
With Worksheets("Feuil1").Shapes("Picture 1")
.Copy
End With

With Worksheets("Feuil2")
.Activate
.Paste
Set Sh = Selection
Sh.Left = .Range("a10").Left
Sh.Top = .Range("a10").Top
.Range(Sh.BottomRightCell.Address).Activate
End With

Worksheets(F).Activate

End Sub
'------------------------------------


Salutations!


"Dude" a écrit dans le message de news:

Hello tout le monde.

Quelqu'un aurait-il une suggestion pour dupliquer une image qui se trouve
en
feuille 1 sur la feuille 2, le tout sans activer la feuille 2 et en
plaçant
le duplicata dans le coin supérieur gauche de la feuille 2 ?

Merci pour votre aide :)





Avatar
MichDenis
Pour éviter que des procédures événementielles s'exécutent lors d'appel de d'autres procédures, tu insères dans ton code
ceci : Application.EnableEvents = False en début de procédure, et tu n'oublies pas de remettre la propriété à son état
original : Application.EnableEvents = True

La procédure suggérée deviendrait :

'------------------------------------
Sub CopierUneImage()

Dim F As String, Sh As Object

F = ActiveSheet.Name
Application.ScreenUpdating = False
Application.EnableEvents = False
With Worksheets("Feuil1").Shapes("Picture 1")
.Copy
End With

With Worksheets("Feuil2")
.Activate
.Paste
Set Sh = Selection
Sh.Left = .Range("a10").Left
Sh.Top = .Range("a10").Top
.Range(Sh.BottomRightCell.Address).Activate
End With
Worksheets(F).Activate
Application.EnableEvents = True
End Sub
'---------------------------------------


Salutations!