Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1332to1336
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro: Shape in beliebiges Tabellenblatt kopieren

Makro: Shape in beliebiges Tabellenblatt kopieren
25.09.2013 09:43:18
Elke
Liebe Experten,
ich habe folgendes Problem: Ich möchte mir aus einem Tabellenblatt "Vorlage" einzelne Shapes in ein beliebiges anderes Tabellenblatt kopieren. Ich habe nun sowohl das Shape als auch die Zelle benannt und das Shape mit der Zelle verbunden, damit habe ich es geschafft das Shape in die Zelle zu kopieren welche ich markiert habe.
Was ich nicht schaffe ist: Das ich auch das Shape in ein beliebiges Tabellenblatt kopieren kann. --> Nimmt mir immer das von mir aufgezeichnete Tabellenblatt, egal in welchem Tabellenblatt ich gerade bin, habe schon versucht das selber im Makro anzupassen, bisher leider ohne Erfolg.
Für Vorschläge wäre ich sehr dankbar!
LG Elke
Nachstehend das original aufgezeichnete Makro
Sub Test()
' Test Makro
Sheets("Vorlage").Select
Range("A2").Select
Selection.Copy
Sheets("14_").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Makro: Shape in aktuellesTabellenblatt kopieren
25.09.2013 11:00:53
NoNet
Liebe Elke,
der Fehler liegt in der Logik des Codes : Nach dem Aktivieren des Blattes "Vorlage", wird im Code wieder das Blatt "14_" aktiviert, also dort hinein kopiert.
Es gibt jedoch Möglichkeiten das zu umgehen :
z.B. : Die Zelle und Shape kopieren OHNE das Blatt zu wechseln :
Sub KopiereZelleUndShape1()
'Zelle in aktive Zelle des aktuellen Blattes kopieren :
Sheets("Vorlage").Range("A2").Copy
ActiveSheet.Paste
'Shape "ShapeName" kopieren - direkt auf aktive Zelle
Sheets("Vorlage").Shapes("ShapeName").Copy
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
oder zusammengefasste :
Sub KopiereZelleUndShape2()
With Sheets("Vorlage")
'Zelle in aktive Zelle des aktuellen Blattes kopieren :
.Range("A2").Copy ActiveCell
'Shape "ShapeName" kopieren - direkt auf aktive Zelle
.Shapes("ShapeName").Copy
ActiveSheet.Paste
End With
Application.CutCopyMode = False
End Sub
Den Namen des benannten Shapes (hier im Code "ShapeName") musst Du im Code an den tatsächlichen Namen anpassen !
Man könnte auch das "aktuelle" Blatt zuvor in einer Variablen speichern und dieses wieder aktivieren, das ist in deinem Fall jedoch nicht notwendig !
Gruß, NoNet
Hast Du Interesse, andere Excel-Begeisterte kennenzulernen ? - Dann komme zum
Exceltreffen 11.-13.10.2013 in Duisburg

http://www.exceltreffen.de/index.php?page=230
Schau doch mal rein !

Anzeige
AW: Makro: Shape in aktuellesTabellenblatt kopieren
25.09.2013 11:24:38
Elke
Hallo NoNet,
funktioniert super, vielen Dank!
Habe jetzt noch die Range herausgenommen (damit hat er nämlich das Shape doppelt kopiert --> einmal mit der Zelle und einmal als Shape)!
Jetzt habe ich noch eine Frage: ich habe das Shape so formatiert, das es immer in der Mitte der Zelle sein sollte über die "Koordinaten, gibt es eine einfachere Möglichkeit als ich das gemacht habe?
Siehe nachstehend
Sub Testx()
With Sheets("Vorlage")
'Shape "ShapeName" kopieren - direkt auf aktive Zelle
.Shapes("ShapeA").Copy
ActiveSheet.Paste
Selection.ShapeRange.IncrementLeft 34.687480315
Selection.ShapeRange.IncrementTop 10.3124409449
End With
Application.CutCopyMode = False
End Sub

Anzeige
Shape mathematisch zentriert positionieren
25.09.2013 12:01:15
NoNet
Hallo Elke,
das kopierte Shape kann man in Abhängigkeit der Zellgröße und der Shapegröße folgendermassen mittig (zentriert) positionieren :
Sub Testx()
With Sheets("Vorlage")
'Shape "ShapeName" kopieren - direkt auf aktive Zelle
.Shapes("ShapeA").Copy
ActiveSheet.Paste
With Selection
.Left = .TopLeftCell.Left + (.TopLeftCell.Width - .Width) / 2
.Top = .TopLeftCell.Top + (.TopLeftCell.Height - .Height) / 2
End With
End With
Application.CutCopyMode = False
End Sub
Salut, NoNet

AW: Makro: Shape in aktuellesTabellenblatt kopieren
25.09.2013 12:04:56
Rudi
Hallo,
die Position kannst du berechnen.
Sub Testx()
Sheets("Vorlage").Shapes("ShapeA").Copy
ActiveSheet.Paste
With Selection.ShapeRange
.Top = ActiveCell.Top + (ActiveCell.Height - .Height) / 2
.Left = ActiveCell.Left + (ActiveCell.Width - .Width) / 2
End With
Application.CutCopyMode = False
End Sub

Gruß
Rudi

Anzeige
AW: Makro: Shape in aktuellesTabellenblatt kopieren
25.09.2013 12:26:29
Elke
Hallöchen,
ihr seid`s super! Funktioniert perfekt!
Habe mir die Makros zu den einzelnen Shapes schon auf eine eigene Menüleiste gelegt und auf geht's!
Danke vielmals!
LG Elke

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige