Das Archiv des Excel-Forums
Kopieren einzelner Blätter in neue Arbeitsmappe
Betrifft: Kopieren einzelner Blätter in neue Arbeitsmappe
von: Bre
Geschrieben am: 24.10.2003 10:55:47
Hallo,
ich will die einzelnen Blätter einer (Ausgangs-) Mappe seperat als neue Arbeitsmappen speichern, und dabei die ursprüngliche Mappe leeren.
Die neuen Arbeismappen sollen jeweils nur das verschobene Blatt enthalten, und am besten mit diesem Namen gespeichert werden.
Was ist der eleganteste Weg dafür.
Danke für eine kurze Hilfe
mfg
bre
Betrifft: AW: Kopieren einzelner Blätter in neue Arbeitsmappe
von: FP
Geschrieben am: 24.10.2003 11:08:59
Hallo bre?
Klicke mit rechter Maustaste auf das Blattregister
Menüpunkt: verschieben/kopieren
zur Mappe: beim 1. Blatt: "neue Arbeitsmappe"
ab dem 2. Blatt: "Mappe1.xls" als Ziel angeben
nachdem alle gewünschten Blätter verschoben sind ursprüngliche Mappe schliessen
neue Mappe mit altem Namen speichern und bei Rückfrage das Überschreiben akzeptieren
Servus aus dem Salzkammergut
Franz
Betrifft: Sorry, ich meinte natürlich mit VBA Code...
von: bre
Geschrieben am: 24.10.2003 11:17:40
Sorry, ich meinte natürlich mit VBA Code...
(...die einzelnen Namen der Blätter in der Mappe liegen in einem Array und können in einer Schleife verwendet werden, aber ich krieg das irgendwie nicht hin.)
Danke nochmal.
Betrifft: AW: Sorry, ich meinte natürlich mit VBA Code...
von: ChrisL
Geschrieben am: 24.10.2003 11:33:10
Hi
Dann erzähl mal was über dein Array. Wie kommen die Daten dort rein. Wie sieht dein Code bisher aus usw.
> und dabei die ursprüngliche Mappe leeren.
Was verstehst du darunter. Inhalt leeren, Blätter löschen etc. Ein Blatt muss aber mindestens in der Tabelle bleiben.
Gruss
Chris
Betrifft: Zur Zeit ...
von: bre
Geschrieben am: 24.10.2003 11:50:08
siehts so aus:
Die Namen der einzlenen Blätter lese ich über eine Schleife aus (oder "ein" -jenachdem):
Die Namen sind immer gleich.
Dim bez(9)
bez(0) = "Deutsch"
bez(1) = "Italien"
bez(2) = "England"
bez(3) = "Südfrankreich"
bez(4) = "Spanien"
bez(5) = "Portugal"
bez(6) = "Sonderl. Portugal"
bez(7) = "Griechenland"
bez(8) = "Spanien in EUR"
bez(9) = "Sonderl. Span."
For durchlauf = 0 To 9 ....
bez(durchlauf)...
jetzt müsste ich hier doch die einzelen Blätter in eine neue Mappe verschieben können, und dann das leere Blatt der neuen Mappe (Tabelle1) gleich löschen. Dann zur Ausgangsmappe zurück...
next durchlauf
...und nächstes Blatt bearbeiten, etc.
mfg
bre
Betrifft: AW: Zur Zeit ...
von: ChrisL
Geschrieben am: 24.10.2003 12:35:46
Hi bre
Option Explicit
Sub BlätterVerschieben()
Dim WB As Workbook, WS As Worksheet
Dim Bez(9) As Variant
Dim i As Integer
On Error GoTo ErrorHandler
Bez(0) = "Deutsch"
Bez(1) = "Italien"
Bez(2) = "England"
Bez(3) = "Südfrankreich"
Bez(4) = "Spanien"
Bez(5) = "Portugal"
Bez(6) = "Sonderl. Portugal"
Bez(7) = "Griechenland"
Bez(8) = "Spanien in EUR"
Bez(9) = "Sonderl. Span."
Application.ScreenUpdating = False
For i = 0 To UBound(Bez)
Set WB = Workbooks.Add
ThisWorkbook.Sheets(Bez(i)).Move Before:=WB.Sheets(1)
Application.DisplayAlerts = False
For Each WS In WB.Worksheets
If WS.Name <> Bez(i) Then WS.Delete
Next WS
Application.DisplayAlerts = True
WB.SaveAs "C:\PFAD\" & Bez(i) & ".xls"
WB.Close
Next i
Application.ScreenUpdating = True
Exit Sub
ErrorHandler:
MsgBox "Fehler!"
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Die Blattnamen mit Punkten werden sich allerdings als Dateinamen nicht gut machen.
Gruss
Chris
Betrifft: Super! *Anerkennungaussprech* ot
von: bre
Geschrieben am: 24.10.2003 13:20:42
asd
Excel-Beispiele zum Thema " Kopieren einzelner Blätter in neue Arbeitsmappe"