Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: shapes kopieren und einfügen

shapes kopieren und einfügen
26.02.2017 13:44:49
Hermann
Sehr geehrte Excel-Gemeinde,
ich würde mich sehr über etwas Unterstützung freuen.
in meinem WBZ (Zieldatei) habe ich eine Gruppierung ("Group 342") die ich löschen und durch eine andere Gruppierung ("Kopfzeile") aus WBQ (Quelldatei) ersetzen möchte
Dies versuchte ich mit:
WBZ.Sheets(x).Shapes.Range(Array("Group 342")).Delete
WBQ.Worksheets("Angebot").Shapes("Kopfzeile").Copy WBZ.Sheets(x).Range("A1").Paste
Application.CutCopyMode = False
Hierbei funktioniert Zeile 1. Diese löscht die Guppierung
Zeile 2 funtioniert nicht
Bei Zeile 3 weis ich nicht ob ich die brauche
Ich würde mich sehr über Hilfe freuen
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: shapes kopieren und einfügen
26.02.2017 14:07:48
Mullit
Hallo,
so:
  Call WBQ.Worksheets("Angebot").Shapes("Group 1").Copy
With WBZ.Sheets(X)
Call .Shapes("Group 342").Delete
Call .Paste
End With

Gruß, Mullit
AW: shapes kopieren und einfügen
26.02.2017 14:22:30
Mullit
Hallo,
...uups, Du mußt natürlich Deine Bez. einfügen, und mit Zielangabe ist's noch besser:
Call WBQ.Worksheets("Angebot").Shapes("Kopfzeile").Copy
With WBZ.Sheets(X)
      Call .Shapes("Group 342").Delete
      Call .Paste(Destination:=.Cells(1, 1))
End With

Gruß, Mullit
Anzeige
AW: shapes kopieren und einfügen
26.02.2017 15:11:50
Hermann
Hallo Multi,
vielen Dank für die Lösung. Funktioniert tadellos.
Ich habe daran mich 2 Stunden lang versucht.
Beim nächsten Mal frage ich eher.
Gruß Hermann
Und schönes Restwochenende
alles klar, prima...
26.02.2017 15:49:02
Mullit
...und ebenso noch schönes W.ende....
Gruß, Mullit
;
Anzeige
Anzeige

Infobox / Tutorial

Shapes kopieren und einfügen in Excel


Schritt-für-Schritt-Anleitung

Um Shapes in Excel von einem Arbeitsblatt auf ein anderes zu kopieren, kannst du VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" > Einfügen > Modul.
  3. Füge den folgenden Code ein:

    Sub ShapesKopieren()
       Dim WBQ As Workbook
       Dim WBZ As Workbook
       Dim x As Integer
    
       Set WBQ = Workbooks("Quelldatei.xlsx") ' Quelldatei
       Set WBZ = Workbooks("Zieldatei.xlsx")   ' Zieldatei
       x = 1  ' Ziel-Arbeitsblattnummer
    
       ' Lösche die bestehende Gruppierung
       Call WBZ.Sheets(x).Shapes("Group 342").Delete
    
       ' Kopiere die neue Gruppierung
       Call WBQ.Worksheets("Angebot").Shapes("Kopfzeile").Copy
       Call WBZ.Sheets(x).Paste(Destination:=WBZ.Sheets(x).Cells(1, 1))
    End Sub
  4. Ändere die Dateinamen:

    • Passe die Namen der Quelldatei und Zieldatei im Code an.
  5. Führe das Makro aus:

    • Klicke auf Run oder drücke F5, um das Makro auszuführen.

Häufige Fehler und Lösungen

  • Fehler: Fehler beim Ausführen des Codes

    • Lösung: Überprüfe, ob die Arbeitsmappen korrekt geöffnet sind und die Shapes die angegebenen Namen haben.
  • Fehler: Shape konnte nicht gefunden werden

    • Lösung: Stelle sicher, dass die Namen der Shapes genau übereinstimmen und keine Tippfehler enthalten sind.

Alternative Methoden

Falls du keine VBA-Lösungen bevorzugst, kannst du Shapes auch manuell kopieren:

  1. Wähle das Shape im Quelldokument aus.
  2. Drücke STRG + C, um das Shape zu kopieren.
  3. Wechsle zu dem Zielarbeitsblatt und drücke STRG + V, um es einzufügen.

Diese Methode ist einfach, jedoch weniger effizient, wenn du viele Shapes kopieren musst.


Praktische Beispiele

Hier sind zwei praktische Beispiele für das Kopieren von Shapes mit VBA:

  1. Kopiere ein einzelnes Shape:

    Call WBQ.Worksheets("Angebot").Shapes("Shape1").Copy
    Call WBZ.Sheets(x).Paste(Destination:=WBZ.Sheets(x).Cells(2, 2))
  2. Kopiere mehrere Shapes:

    Dim shapesArray As Variant
    shapesArray = Array("Shape1", "Shape2", "Shape3")
    
    For Each shapeName In shapesArray
       Call WBQ.Worksheets("Angebot").Shapes(shapeName).Copy
       Call WBZ.Sheets(x).Paste(Destination:=WBZ.Sheets(x).Cells(2, 2))
    Next shapeName

Tipps für Profis

  • Verwende Application.CutCopyMode = False: Dies hilft, den Kopiermodus zu beenden und die Zwischenablage zu leeren, um Verwirrung zu vermeiden.

  • Definiere Variablen für Shape-Namen: Wenn du häufig mit Shapes arbeitest, definiere die Namen als Variablen, um Tippfehler zu vermeiden.

  • Nutze Schleifen: Wenn du mit mehreren Shapes arbeitest, kann eine Schleife den Code erheblich vereinfachen.


FAQ: Häufige Fragen

1. Wie kann ich Shapes aus mehreren Arbeitsblättern kopieren?
Du kannst eine Schleife über die gewünschten Arbeitsblätter erstellen und den gleichen Copy-Paste-Code verwenden.

2. Was, wenn ich eine ganze Gruppe von Shapes kopieren möchte?
Du kannst die Shapes.Range(Array("GroupName")).Copy Methode verwenden, um eine gesamte Gruppe zu kopieren.

3. Ist VBA notwendig, um Shapes zu kopieren?
Nein, du kannst Shapes auch manuell kopieren, aber VBA bietet mehr Flexibilität und Effizienz, besonders bei großen Datenmengen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige