Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema ListBox
BildScreenshot zu ListBox ListBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema SpinButton
BildScreenshot zu SpinButton SpinButton-Seite mit Beispielarbeitsmappe aufrufen

Worksheet verschieben

Betrifft: Worksheet verschieben von: Dennis
Geschrieben am: 16.09.2014 18:16:01

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.

  

Betrifft: AW: Worksheet verschieben von: Daniel
Geschrieben am: 16.09.2014 18:40:42

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)


  

Betrifft: AW: Worksheet verschieben von: Dennis
Geschrieben am: 17.09.2014 13:24:22

Vielen Dank für die Hilfe!


  

Betrifft: AW: Worksheet verschieben von: Luschi
Geschrieben am: 16.09.2014 18:46:05

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


  

Betrifft: AW: Worksheet verschieben von: Dennis
Geschrieben am: 17.09.2014 13:23:17

Vielen Dank für die Hilfe!


 

Beiträge aus den Excel-Beispielen zum Thema "Worksheet verschieben"