Office-Fragen.de
[VBA] Copy and Paste Image - Druckversion

+- Office-Fragen.de (https://office-fragen.de)
+-- Forum: Microsoft Office (https://office-fragen.de/forum-1.html)
+--- Forum: Excel (https://office-fragen.de/forum-2.html)
+--- Thema: [VBA] Copy and Paste Image (/thread-8977.html)



[VBA] Copy and Paste Image - thowe - 09.04.2020

Halli, hallo am grünen Donnerstage....

Ich habe hier (eigentlich in einer Klasse) eine kleine Subroutine. Die macht was sie soll:

Code:
Sub CopyAndPaste(strImageName As String)
    wksData.Activate
    wksData.Shapes.Range(Array(strImageName)).Select
    Selection.Copy
    wksKFZNeu.Activate
    wksKFZNeu.Range("F1:G1").Select
    wksKFZNeu.Paste
End Sub

Meine Frage dazu:
Beim "Debuggen" ist mir aufgefallen das ich:

Das Arbeitsblatt indem sich das zu kopierende Bild befindet, aktivieren (oder auswählen) muss  UND
Dannach auch das Arbeitsblatt indem ich es einfügen möchte.

Ein kurzes knappes:

Code:
wksData.Shapes.Range(Array(strImageName)).Copy

wksCalculation.Range("F1:G1").Paste

genügt nicht.

Als "aufmerksamer" Leser meiner Lieblingsforen, befolge ich den Ratschlag sowenig wie möglich, bzw. gar nicht zu "Selecten".
Und dieses

Code:
wksData.Shapes.Range(Array(strImageName)).Copy

hab ich vom Makrorecorder.
Gibt es für das kpieren auch eine andere Möglichkeit als via .Range(Array(...))?

Danke vorab für eure Antworten


RE: [VBA] Copy and Paste Image - maninweb - 10.04.2020

Hallo,

ein Beispiel ohne Select ...

Code:
Sub Test()

' Kopieren...
 
  ThisWorkbook.Worksheets("Tabelle1").Shapes("Grafik 2").Copy
 
' Einfügen...
 
  ThisWorkbook.Worksheets("Tabelle2").Paste
 
' Position...
 
  ThisWorkbook.Worksheets("Tabelle2").Shapes( _
  ThisWorkbook.Worksheets("Tabelle2").Shapes.Count).Left = _
  ThisWorkbook.Worksheets("Tabelle2").Range("D4").Left
 
  ThisWorkbook.Worksheets("Tabelle2").Shapes( _
  ThisWorkbook.Worksheets("Tabelle2").Shapes.Count).Top = _
  ThisWorkbook.Worksheets("Tabelle2").Range("D4").Top
 
End Sub

Gruß


RE: [VBA] Copy and Paste Image - thowe - 10.04.2020

Hallo Maninweb!

Danke für deine Amtwort

gut das mit dem "Array(...) kann man "umschiffen!
Das erste .Select kann man auch weglassen

Für das "Einfügen" (.Paste) scheint ein Select notwendig wenn man es an/in ein er bestimmten zelle einfügen möchte

Code:
Sub CopyAndPaste(strImageName As String)
    wksData.Activate
    wksData.Shapes(strImageName).Copy
    wksKFZNeu.Activate
    With wksKFZNeu
        .Cells(1, 6).Select
        .Paste
    End With
   
End Sub

für das Einfügen funktioniert ein "einfaches"

Code:
wksKFZNeu.Cells(1,6).Paste

nicht. Warum? <- ich möchte es nur verstehen.....


RE: [VBA] Copy and Paste Image - Flotter Feger - 10.04.2020

Hallo,

du liest nicht gerne in irgendwelchen Hilfen nach, hab ich recht ? Cool Confused 

Weil nur das Worksheet-Object die Paste-Methode besitzt.
Das Cells-Object hat diese nicht.

Deshalb auch der Positionierungsabschnitt in Mourads Code.

Hast du nicht mal geschrieben, du wärst der Programmierer bei euch in der Firma ?

Sabina


RE: [VBA] Copy and Paste Image - thowe - 11.04.2020

Danke flotter Feger für die Antwort und Hilfe....