AW: Nur Tabellenblatt speichern nicht ganze Arbeitsm
19.03.2009 19:47:38
fcs
Hallo Horst,
Tabellen ausgliedern heist:
Jede Tabelle wird in eine neue Arbeitsmappe verschoben und unter einem eigenen Namen gespeichert.
Falls die Tabellenblätter keine Formelverknüpfungen haben zu anderen Blättern in der Tabelle, dann geht das relativ reibungslos.
Hier mal 2 entsprechende Makros.
Den Pfad für die auszulagernden Dateien muss du ggf. anpassen. Im Moment werden sie im gleichen Verzeichnis wie die Arbeitsmappe abgelegt.
Falls die Größe der Datei noch kein Problem ist, dann solltest du die "nicht erwünschten" Blätter einfach via Menü Format--Blatt-Ausblenden "verschwinden" lassen. Einblenden dann auch wieder via Menü.
Gruß
Franz
Sub BlattAuslagern()
Dim wks As Worksheet, wbk As Workbook, strPfad As String
strPfad = ActiveWorkbook.Path
Set wks = ActiveSheet
wks.Move
Set wbk = ActiveWorkbook
With wbk
.SaveAs Filename:=strPfad & Application.PathSeparator & ActiveSheet.Name, FileFormat:= _
xlWorkbook
wbk.Close
End With
End Sub
Sub BlattReinholen()
Dim wksQ As Worksheet, wbkQ As Workbook, wbk As Workbook, wks As Worksheet
Dim strDatei As Variant, strPfad As String
strPfad = ActiveWorkbook.Path
VBA.ChDir strpath
strDatei = Application.GetOpenFilename(Filefilter:="Excelfile(*.xl*),*.xl*", _
Title:="Bitte Datei mit Tabellenblatt öffnen")
If strDatei False Then
Set wbk = ActiveWorkbook
Set wks = ActiveSheet
Set wbkQ = Workbooks.Open(Filename:=strDatei)
Set wksQ = wbkQ.Worksheets(1)
wbkQ.Worksheets.Add after:=wksQ 'Leerblatt einfügen, da sonnst evtl. Fehler im Ablauf
wksQ.Move after:=wks
wbkQ.Close savechanges:=True
VBA.Kill strDatei
End If
End Sub