Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Worksheet verschieben

Worksheet verschieben
16.09.2014 18:16:01
Dennis
Hallo zusammen,
ich möchte ein gerade aktives Sheet aus einem bereits bestehnden Workbook in ein neu zu erstellendes Workbook verschieben.
Das aktive Workbook ist "Factsheet Traube.xlms" und soll in ein neues Workbook mit dem Namen "Factsheet Traube" verschoben werden. Bekomme in der Zeile mit dem Move-Befehl eine Fehlermeldung. Erkenne meinen Fehler aber nicht. Jemand eine Idee?
Set Blatt = ActiveSheet
Application.SheetsInNewWorkbook = 1
Set Mappe = Workbooks.Add
Workbooks("Factsheet Traube.xlsm").Worksheets(Blatt).Move Before:=Workbooks(Mappe).Sheets(1)
Mappe.SaveAs Filename:="C:\Factsheets\" & Name
Mappe.Close
Vielen Dank vorab.

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Worksheet verschieben
16.09.2014 18:40:42
Daniel
Hi
dazu sollte folgender Code ausreichen:
ActiveSheet.Move
ActiveWorkbook.SaveAs FileName:="C:\Factsheets\" & Name, FileFormat:=?
wenn du ein Blatt ohne Zielangab verschiebst, wird es automatisch in eine neue Datei geschoben, dh du musst die neue Datei nicht erst anlegen (sie enthält dann auch nur dieses neue Blatt).
Noch ein Fehler: seit Excel 2007 muss man beim SAVEAS das FileFormat immer mit angeben (dh ob du die Datei als xls, xlsx, xlsm oder xlsb speichern willst)
diese Angabe muss über das Fileformat erfolgen.
Die Dateierweiterung wird dann automatsich vergeben und braucht nicht im FileName enthalten sein.
Gruß Daniel
ps. nochmal zur Erklärung, warum dein Code nicht funktioniert:
richtig wäre:
Set Blatt = ActiveSheet
Application.SheetsInNewWorkbook = 1
Set Mappe = Workbooks.Add
Workbooks("Factsheet Traube.xlsm").Worksheets(Blatt.Name).Move Before:=Workbooks(Mappe).Sheets(1)

oder das:
Set Blatt = ActiveSheet
Application.SheetsInNewWorkbook = 1
Set Mappe = Workbooks.Add
Blatt.Move Before:=Workbooks(Mappe).Sheets(1)

dein Fehler ist, dass du das Objekt über seine Adresse ansprechen wolltest, aber anstelle der Adresse das ganze Objekt verwendest hast (du hast quasi an der Stelle im Fragebogen, wo du die Adresse hinschreiben sollst, das ganze Haus hingestellt)

Anzeige
AW: Worksheet verschieben
17.09.2014 13:24:22
Dennis
Vielen Dank für die Hilfe!

AW: Worksheet verschieben
16.09.2014 18:46:05
Luschi
Hallo Dennis,
hier ist Einiges 'doppelt-gemommelt', aber falsch:
Worksheets(Blatt) & Workbooks(Mappe)
'Blatt' ist bereits ein Worksheet und 'Mappe' ein Workbook, also genügt:
Blatt.Move Before:=Mappe.Sheets(1)
oder so (auch 'd-g'), dafür aber richtig:
Workbooks("Factsheet Traube.xlsm").Worksheets(Blatt.Name).Move Before:=Workbooks(Mappe.Name).Sheets(1)
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Worksheet verschieben
17.09.2014 13:23:17
Dennis
Vielen Dank für die Hilfe!
;
Anzeige
Anzeige

Infobox / Tutorial

Worksheet verschieben in Excel


Schritt-für-Schritt-Anleitung

Um ein aktives Worksheet aus einem bestehenden Workbook in ein neues Workbook zu verschieben, kannst Du den folgenden VBA-Code verwenden:

Sub WorksheetVerschieben()
    Dim Blatt As Worksheet
    Dim Mappe As Workbook

    ' Aktives Blatt setzen
    Set Blatt = ActiveSheet

    ' Neues Workbook erstellen
    Set Mappe = Workbooks.Add

    ' Blatt verschieben
    Blatt.Move Before:=Mappe.Sheets(1)

    ' Neues Workbook speichern
    Mappe.SaveAs Filename:="C:\Factsheets\" & Blatt.Name & ".xlsx", FileFormat:=xlOpenXMLWorkbook
    Mappe.Close
End Sub

Mit diesem Code wird das aktive Sheet automatisch in ein neues Workbook verschoben. Achte darauf, dass Du das FileFormat korrekt angibst, insbesondere bei Excel-Versionen ab 2007.


Häufige Fehler und Lösungen

Fehler 1: Method 'Move' of object 'Worksheet' failed
Lösung: Stelle sicher, dass Du das aktive Blatt richtig referenzierst. Verwende Blatt.Move, anstelle von Workbooks("Factsheet Traube.xlsm").Worksheets(Blatt), da Du das Blatt bereits in der Variable Blatt hast.

Fehler 2: FileFormat not specified
Lösung: Ab Excel 2007 ist es notwendig, das FileFormat beim Speichern anzugeben. Achte darauf, die richtige Formatierung wie xlOpenXMLWorkbook für .xlsx Dateien zu verwenden.


Alternative Methoden

Eine alternative Methode, um ein Worksheet zu verschieben, ist die Verwendung der ActiveSheet.Move-Methode ohne explizite Erstellung eines neuen Workbooks:

Sub AktivesBlattVerschieben()
    ActiveSheet.Move
End Sub

Diese Methode erstellt automatisch ein neues Workbook, das nur das verschobene Blatt enthält.


Praktische Beispiele

Angenommen, Du möchtest das aktive Blatt aus dem Workbook "Factsheet Traube.xlsm" in ein neues Workbook verschieben. Du kannst den folgenden Code verwenden:

Sub BeispielBlattVerschieben()
    Dim Blatt As Worksheet
    Set Blatt = ActiveSheet
    Blatt.Move
    ActiveWorkbook.SaveAs Filename:="C:\Factsheets\" & Blatt.Name & ".xlsx", FileFormat:=xlOpenXMLWorkbook
End Sub

Mit diesem Code wird das aktive Blatt direkt in ein neues Workbook verschoben und gespeichert.


Tipps für Profis

  • Verwende die .Sheets-Sammlung in VBA, um gezielt auf verschiedene Blätter zuzugreifen.
  • Denke daran, dass Du nach dem Verschieben des Blattes auch die Formatierung und Formeln überprüfen solltest, um sicherzustellen, dass alles korrekt funktioniert.
  • Automatisiere wiederkehrende Aufgaben mit Makros, um die Effizienz zu steigern.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Blätter gleichzeitig verschieben?
Du kannst eine Schleife verwenden, um mehrere Blätter zu durchlaufen und sie einzeln zu verschieben.

2. Was passiert mit den Formeln, wenn ich ein Blatt verschiebe?
Formeln, die auf andere Blätter im ursprünglichen Workbook verweisen, funktionieren möglicherweise nicht mehr. Überprüfe die Verknüpfungen nach dem Verschieben.

3. Kann ich ein Blatt auch in ein bestehendes Workbook verschieben?
Ja, Du kannst das Ziel-Workbook öffnen und das Blatt dort verschieben, indem Du die Referenz auf das bestehende Workbook im Code angibst.

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