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

Forumthread: Mehrere Tabellen per VBA in neuen Mappe kopieren

Mehrere Tabellen per VBA in neuen Mappe kopieren
12.06.2006 16:25:21
Torge
Hallo,
wer kann helfen? Möchte gern mehrere Tabellenblätter per VBA in eine neue Mappe kopieren, Problem dabei ist, einige Tabellen sind ausgeblendet also nicht sichtbar. Geht dies überhaupt?
Vielen Dank
Torge
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehrere Tabellen per VBA in neuen Mappe kopieren
12.06.2006 16:29:27
u_
Hallo,
nein, geht nicht. einblenden-kopieren-ausblenden.
Gruß
Geist ist geil!
(Dies ist ein allgemeines Statement und nicht an bestimmte Personen gerichtet.)
AW: Mehrere Tabellen per VBA in neuen Mappe kopieren
12.06.2006 16:39:46
Torge
Hi,
vielen Dank aber wie mach ich das? Kann man das Einblenden dann zeitlich beeinflussen? Das Problem ist, die ausgeblendeten Blätter sollten nach Möglichkeit nicht einsehbar sein oder aber so, dass diese nicht gelesen werden können.
Gruß Torge
Anzeige
AW: Mehrere Tabellen per VBA in neuen Mappe kopieren
12.06.2006 17:27:01
Lutz
Hallo Torge,
das Kopieren der Blätter kannst du wie in beigefügtem Makro (s.u.) erledigen. Den Wunsch nach zeitlicher Beeinflussbarkeit kann ich jetzt nicht nachvollziehen, da müsstest du noch genauer werden (deshalb lasse ich die Frage noch offen). Durch Ausschalten der Bildschirmaktualisierung sieht der Benutzer nicht, was das Makro gerade anrichtet. ;-)
Wenn die Blätter gar nicht einsehbar sein sollen, kannst du die Blätter auch mit xlveryhidden (einfach unten statt .visible=false .visible=xlveryhidden eintragen) ausblenden, das hab ich in dem beigefügten Makro nicht gemacht.
Hier ist das erwähnte Beispiel:

Sub BlaetterKopieren()
Dim ZielDatei As String
'***    Bildschirmaktualisierung ausschalten
Application.ScreenUpdating = True
'***    sichtbares Sheet in neue Mappe kopieren
Workbooks("Quelldatei.xls").Worksheets("Sichtbar1").Copy
'***    Dateinamen der neuen Mappe ermitteln
ZielDatei = Workbooks(Workbooks.Count).Name
'***    verborgenes Blatt einblenden und anschließend in die neue Mappe nach Blatt Sichtbar1 einfügen
Workbooks("Quelldatei.xls").Worksheets("Unsichtbar1").Visible = True
Workbooks("Quelldatei.xls").Worksheets("Unsichtbar1").Copy After:=Workbooks(ZielDatei).Worksheets("Sichtbar1")
'***    ehem. verborgene Blätter in Quell- und neuer Datei ausblenden
Workbooks("Quelldatei.xls").Worksheets("Unsichtbar1").Visible = False
Workbooks(ZielDatei).Worksheets("Unsichtbar1").Visible = False
'***    Bildschirmaktualisierung wieder einschalten
Application.ScreenUpdating = True
End Sub

HTH
Lutz
Anzeige
AW: Mehrere Tabellen per VBA in neuen Mappe kopieren
12.06.2006 17:50:50
Torge
Hallo Lutz,
vielen Dank zunächst.
Habe folgendes von Dir mal probiert:

Private Sub CommandButton3_Click()
Dim ZielDatei As String
'***    Bildschirmaktualisierung ausschalten
Application.ScreenUpdating = True
'***    sichtbares Sheet in neue Mappe kopieren
Workbooks("test.xls").Worksheets("Fin.-Anfrage").Copy
'***    Dateinamen der neuen Mappe ermitteln
ZielDatei = Workbooks(Workbooks.Count).Name
'***    verborgenes Blatt einblenden und anschließend in die neue Mappe nach Blatt Sichtbar1 einfügen
Workbooks("test.xls").Worksheets("Dateneingabe").Visible = True
Workbooks("test.xls").Worksheets("Fi-Plan (Neubau)").Copy After:=Workbooks(ZielDatei).Worksheets("Sichtbar1")
Workbooks("test.xls").Worksheets("Fi-Plan (Bestand)").Copy After:=Workbooks(ZielDatei).Worksheets("Sichtbar1")
'***    ehem. verborgene Blätter in Quell- und neuer Datei ausblenden
Workbooks("test.xls").Worksheets("Dateneingabe").Visible = False
Workbooks(ZielDatei).Worksheets("Fi-Plan (Neubau)").Visible = False
Workbooks(ZielDatei).Worksheets("Fi-Plan (Bestand)").Visible = False
'***    Bildschirmaktualisierung wieder einschalten
Application.ScreenUpdating = True
End Sub

Leider wird hier nur eine Tabelle kopiert und dann kommt Fehlermeldung.
Das zeitliche war nur gedacht für den Fall, dass eben die ausgeblendeten Tabellen beim Kopieren nicht gesehen werden sollten oder können. Das wollte ich gern erreichen dabei.
Kannst Du mir noch was zu der Fehlermeldung sagen warum ich die bekommen?
Gruß Torge
Anzeige
AW: Mehrere Tabellen per VBA in neuen Mappe kopieren
12.06.2006 18:23:35
Lutz
Hallo Torge,
du hast den Code nicht vollständig angepasst, hier liegt's im Argen:
Workbooks("test.xls").Worksheets("Fi-Plan (Neubau)").Copy After:=Workbooks(ZielDatei).Worksheets("Sichtbar1")
Workbooks("test.xls").Worksheets("Fi-Plan (Bestand)").Copy After:=Workbooks(ZielDatei).Worksheets("Sichtbar1")
Wie du siehst, hast du noch "Sichtbar1" stehen, das musst du noch durch "Fin.-Anfrage" bzw. den Namen des Blattes, nach welchem eingefügt werden soll, ersetzen. Dann sollte es funktionieren.
Allerdings ist die Lösung von u_ bei vielen zu kopierenden Blättern m.E. wesentlich schneller.
Viele Grüße
Lutz
Anzeige
AW: Mehrere Tabellen per VBA in neuen Mappe kopieren
13.06.2006 09:19:12
Torge
Hallo Lutz,
vielen Dank für die Hilfe. Werd mal beide Code's bei mir versuchen zu verwenden und schauen welcher am besten passt.
Also vielen Dank und schönen Tag noch.
Gruß Torge
AW: Mehrere Tabellen per VBA in neuen Mappe kopier
12.06.2006 17:45:19
u_
Hallo,
das kriegst du gar nicht mit.
Bau dir mal ne Mappe mit 5 Sheets, in der Sheet 4 und 5 ausgeblendet sind und starte den Code.
in ein Modul:

Sub test()
Application.ScreenUpdating = False
With ThisWorkbook
.Sheets(4).Visible = xlSheetVisible
.Sheets(5).Visible = xlSheetVisible
.Sheets(Array("tabelle1", "tabelle2", "tabelle4", "Tabelle5")).Copy
.Sheets(4).Visible = xlSheetVeryHidden
.Sheets(5).Visible = xlSheetVeryHidden
End With
Sheets(3).Visible = xlSheetVeryHidden
Sheets(4).Visible = xlSheetVeryHidden
Application.ScreenUpdating = True
End Sub

Gruß
Geist ist geil!
Anzeige
AW: Mehrere Tabellen per VBA in neuen Mappe kopier
12.06.2006 18:02:26
Torge
Hallo u_,
das geht ja wirklich schnell. Aber meine Dateien sind ziemlich groß, d.h. es sind viele Daten drin und es sollte dann natürlich nicht übermäßig nerven, wenn die Blätter kopiert werden.
Ich versuch das Mal in meiner Originaldatei einzubinden.
Vielleicht noch eine Frage, geht es, das nach dem die Blätter kopiert worden sind mittels einer Aktion durchzuführen (mittels MsgBox), in der die im ersten Tabellenblatt vorhandenen Formeln in Festwerte umgwandelt werden? Das darf aber nicht vorher sein, weil sonst die Originaldatei futsch ist, also erst nachdem die neue Mapper erstellt wurde.
Vielen Dank bis hier erst mal
Gruß Torge
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Mehrere Tabellen per VBA in einer neuen Mappe kopieren


Schritt-für-Schritt-Anleitung

Um mehrere Tabellenblätter in eine neue Datei zu kopieren, kannst Du folgendes VBA-Makro verwenden. Dieses Beispiel zeigt, wie Du auch ausgeblendete Blätter einblenden und anschließend wieder ausblenden kannst:

Sub BlaetterKopieren()
    Dim ZielDatei As String
    ' Bildschirmaktualisierung ausschalten
    Application.ScreenUpdating = False
    ' Sichtbares Sheet in neue Mappe kopieren
    Workbooks("Quelldatei.xls").Worksheets("Sichtbar1").Copy
    ' Dateinamen der neuen Mappe ermitteln
    ZielDatei = Workbooks(Workbooks.Count).Name
    ' Verborgenes Blatt einblenden und in die neue Mappe einfügen
    Workbooks("Quelldatei.xls").Worksheets("Unsichtbar1").Visible = True
    Workbooks("Quelldatei.xls").Worksheets("Unsichtbar1").Copy After:=Workbooks(ZielDatei).Worksheets("Sichtbar1")
    ' Ehemals verborgene Blätter ausblenden
    Workbooks("Quelldatei.xls").Worksheets("Unsichtbar1").Visible = False
    Workbooks(ZielDatei).Worksheets("Unsichtbar1").Visible = False
    ' Bildschirmaktualisierung wieder einschalten
    Application.ScreenUpdating = True
End Sub

Häufige Fehler und Lösungen

  1. Fehler: „Objektvariable nicht festgelegt“

    • Stelle sicher, dass der Name der Quelldatei korrekt ist und die angegebenen Blätter existieren.
  2. Fehler: „Blatt nicht gefunden“

    • Überprüfe die Schreibweise der Blattnamen. Wenn Du versuchst, ein nicht sichtbares Blatt zu kopieren, stelle sicher, dass es vorher sichtbar gemacht wurde.
  3. Fehler: Nur ein Blatt wird kopiert

    • Achte darauf, dass Du im Code die korrekten Blattnamen angibst, nachdem Du den Code angepasst hast, um die Sichtbarkeit zu ändern.

Alternative Methoden

Falls Du keine Makros verwenden möchtest, kannst Du auch die Funktion „Kopieren“ und „Einfügen“ manuell nutzen:

  1. Excel mehrere Tabellenblätter in ein Tabellenblatt kopieren ohne Makro:

    • Wähle die gewünschten Blätter aus, halte die Strg-Taste gedrückt, und klicke auf die Blätter, die Du kopieren möchtest. Rechtsklicke auf einen der ausgewählten Blätter und wähle „Kopieren“.
    • Füge die Blätter dann in ein neues Blatt ein.
  2. Excel mehrere Tabellenblätter in ein Tabellenblatt kopieren ohne VBA:

    • Du kannst die Daten auch kopieren und in ein neues Arbeitsblatt einfügen, indem Du die „Kopieren“- und „Einfügen“-Funktionen verwendest.

Praktische Beispiele

Hier ist ein erweitertes Beispiel, das mehrere Blätter in einer neuen Datei speichert:

Sub AlleBlaetterKopieren()
    Dim ZielDatei As String
    ' Bildschirmaktualisierung ausschalten
    Application.ScreenUpdating = False
    ' Alle sichtbaren Blätter kopieren
    ThisWorkbook.Sheets.Copy
    ' Dateinamen der neuen Mappe ermitteln
    ZielDatei = Workbooks(Workbooks.Count).Name
    ' Ehemals verborgene Blätter ausblenden
    For Each ws In ThisWorkbook.Worksheets
        If ws.Visible = xlSheetVeryHidden Then
            ws.Visible = xlSheetVeryHidden
        End If
    Next ws
    ' Bildschirmaktualisierung einschalten
    Application.ScreenUpdating = True
End Sub

Tipps für Profis

  • Verwende Application.DisplayAlerts = False, um lästige Bestätigungsdialoge während des Kopiervorgangs auszublenden.
  • Stelle sicher, dass Du die Bildschirmaktualisierung (Application.ScreenUpdating) ausschaltest, um die Performance Deines Makros zu verbessern und das Kopieren der Blätter schneller zu gestalten.
  • Überlege, ob Du die Blätter direkt in ein einziges Tabellenblatt zusammenführen möchtest. Dies kann durch das anpassen der Kopierlogik geschehen.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Tabellenblätter in eine neue Datei speichern? Du kannst das oben genannte VBA-Makro verwenden, um mehrere Tabellenblätter in eine neue Datei zu kopieren.

2. Ist es möglich, mehrere Tabellenblätter in ein Tabellenblatt zu kopieren? Ja, Du kannst Daten aus mehreren Tabellenblättern in ein Tabellenblatt kopieren, indem Du die entsprechenden Blätter auswählst und die Daten dann in ein neues Blatt einfügst.

3. Welche Excel-Version wird benötigt? Die oben genannten Beispiele sind für Excel 2010 und höher geeignet. Achte darauf, dass Du die Makros aktivierst, um sie ausführen zu können.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige