Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Objekte in neues Tabellenblatt kopieren

Objekte in neues Tabellenblatt kopieren
27.01.2009 15:22:00
Bertram
Hallo zusammen,
ich kopiere ein komplettes Tabellenblatt per VBA in ein (temporäres) neues Tabellenblatt ohne den Code des TBs zu kopieren, verschiebe dieses und speichere es als neue Datei ab. Soweit so gut. Allerdings habe ich auch 4 Kästchen (OK1 bis OK4) auf meinem Tabellenblatt, die ich nachher auch wieder brauche.
Das Kopieren der Kästchen ist auch noch nicht das Problem, ABER:
OK2 bis OK4 werden an die richtige Stelle kopiert. OK1 aber NICHT. Das muss ich hinterher erst wieder an die passende Position rücken (der Teil ist im Code aktuell auskommentiert, damit ihr seht was ich meine).
Kann mir das jemand erklären, warum das so ist?
Beispiel hier: https://www.herber.de/bbs/user/58836.xls
Danke und Gruß
Bertram
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Objekte in neues Tabellenblatt kopieren
27.01.2009 15:53:00
Tino
Hallo,
habe ich dich richtig verstanden?
Hiermit sind die Kästchen genau an der Stelle wie im Originale.
Dim mytab As Worksheet, aktSheet As Worksheet
Set aktSheet = Sheets(1)
Set mytab = Sheets.Add
aktSheet.Cells.Copy mytab.Cells
Gruß Tino
AW: Objekte in neues Tabellenblatt kopieren
27.01.2009 16:04:46
Tino
Hallo,
oder so, wenn Du nur die Werte haben möchtest ohne Formel.

Dim mytab As Worksheet, aktSheet As Worksheet
Set aktSheet = Sheets(1)
Set mytab = Sheets.Add
aktSheet.Cells.Copy mytab.Cells
mytab.UsedRange.Value = mytab.UsedRange.Value


Gruß Tino

Anzeige
Sieht gut aus:-)
27.01.2009 16:20:45
Bertram
Hallo Tino,
habe das mal in mein Original gestrickt und auf den ersten Blick scheint alles zu passen.
Hätte auch selber drauf kommen können, das .PasteSpecial xlValues durch .Value = .Value zu ersetzten. Aber wenn man die ganze Zeit draufstiert, siehrt man nix mehr:-)
Danke dir. Nu hab ich auch meine ollen Kasterl mit dabei.
Gruß
Bertram
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Objekte in neues Tabellenblatt kopieren


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.

  2. Modul einfügen: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei)", wähle "Einfügen" und dann "Modul".

  3. Code einfügen: Kopiere den folgenden VBA-Code in das neue Modul:

    Sub KopiereTabellenblatt()
        Dim mytab As Worksheet, aktSheet As Worksheet
        Set aktSheet = Sheets(1) ' Aktuelles Tabellenblatt
        Set mytab = Sheets.Add ' Neues Tabellenblatt hinzufügen
        aktSheet.Cells.Copy mytab.Cells ' Kopiere alle Zellen
        mytab.UsedRange.Value = mytab.UsedRange.Value ' Nur Werte kopieren
        ' Kästchen kopieren
        aktSheet.OLEObjects("OK1").Copy
        mytab.PasteSpecial
    End Sub
  4. Kästchen anpassen: Stelle sicher, dass die Kästchen korrekt benannt sind (OK1 bis OK4). Füge gegebenenfalls Code hinzu, um deren Positionen nach dem Kopieren anzupassen.

  5. Makro ausführen: Schließe den VBA-Editor und führe das Makro über ALT + F8 aus.


Häufige Fehler und Lösungen

  • Kästchen werden nicht korrekt kopiert: Überprüfe die Namen der Kästchen. Sie müssen exakt mit dem im Code übereinstimmen (z.B. "OK1").
  • Fehler beim Einfügen: Stelle sicher, dass das Zielblatt aktiv ist, wenn Du die Kästchen einfügst.
  • Formeln bleiben erhalten: Wenn Du nur Werte möchtest, benutze .Value = .Value wie im Codebeispiel gezeigt.

Alternative Methoden

  • Manuelles Kopieren: Du kannst auch die Kästchen manuell kopieren, indem Du sie auswählst, STRG + C drückst und im neuen Blatt STRG + V einfügst.
  • Power Query: Verwende Power Query, um Daten aus einem Tabellenblatt in ein anderes zu übertragen, falls Du komplexere Datenverarbeitung benötigst.

Praktische Beispiele

  • Kopieren einer kompletten Excel-Tabelle: Um eine gesamte Excel-Tabelle in ein neues Blatt zu kopieren, kannst Du den oben genannten VBA-Code verwenden.
  • Spezifische Kästchen kopieren: Wenn Du nur bestimmte Kästchen, wie "OK1", kopieren möchtest, kannst Du diese gezielt im Code ansprechen.

Tipps für Profis

  • Kästchen positionieren: Wenn Du die Kästchen an bestimmten Positionen auf dem neuen Blatt einfügen möchtest, kannst Du die Top und Left Eigenschaften der Kästchen anpassen, um sie exakt zu platzieren.
  • Code optimieren: Überlege Dir, wie Du den Code modularisieren oder Schleifen verwenden kannst, um mehrere Kästchen effizient zu kopieren.

FAQ: Häufige Fragen

1. Kann ich auch mehrere Tabellenblätter gleichzeitig kopieren?
Ja, Du kannst eine Schleife in Deinem VBA-Code verwenden, um mehrere Tabellenblätter nacheinander zu kopieren.

2. Wie kann ich nur bestimmte Zellen kopieren?
Anstelle von aktSheet.Cells.Copy kannst Du einen spezifischen Bereich angeben, z.B. aktSheet.Range("A1:B10").Copy.

3. Was mache ich, wenn die Kästchen nicht angezeigt werden?
Überprüfe, ob die Sichtbarkeit der Kästchen in den Eigenschaften auf "Visible" gesetzt ist. Du kannst dies im VBA-Editor anpassen.

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