Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
680to684
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
680to684
680to684
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA Macro

VBA Macro
12.10.2005 07:42:55
Michael
Mein Problem von gestern ist leider noch nicht ganz gelöst. Es geht um 80 Excel Dateien, die in einem Verzeichnis liegen und die aus je ca. 50 Tabellenblättern bestehen. Ich möchte für jedes Tabellenblatt inklusive Inhalt (!!!) eine eigene Exceldatei erstellen.Der Inhalt der Dateien soll also auch abgespeichert werden .Der Dateiname setzt sich zusammen aus Dateiname der Exceltabelle und Tabellenblattname. Die Exceltabellen liegen in einem Verzeichnis. In dieses Verzeichnis können auch die neuemn Dateien gespeichert werden. Der gesamte Ablauf sollte automatisiert ablaufen. Ich füge das Script, welches mir freundlicher Weise Matthias G geliefert hat hier ein:
Der Code für eine Datei:

Sub BlaetterSpeichern(Pfad As String, Dateiname As String)
Dim ws As Worksheet, wb As Workbook
If Right(Pfad, 1) <> "\" Then Pfad = Pfad & "\"
Set wb = Workbooks.Open(Pfad & Dateiname)
For Each ws In wb.Worksheets
ws.Copy
With ActiveWorkbook
.SaveAs Filename:=Pfad & Replace(Dateiname, ".xls", "") & "_" & ws.Name
.Close
End With
Next ws
wb.Close False
End Sub


Sub Aufruf()
BlaetterSpeichern ThisWorkbook.Path, "d1.xls"
End Sub

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Macro
12.10.2005 10:11:58
Matthias
Hallo Michael,
in ein Standardmodul:

Option Explicit
Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal Pfad As String) As Long
Sub BlaetterSpeichern(Pfad As String, Dateiname As String, Ordner As String)
Dim ws As Worksheet, wb As Workbook
If Right(Pfad, 1) <> "\" Then Pfad = Pfad & "\"
Set wb = Workbooks.Open(Pfad & Dateiname)
For Each ws In wb.Worksheets
ws.Copy
With ActiveWorkbook
.SaveAs Filename:=Pfad & Ordner & "\" & Replace(Dateiname, ".xls", "") & "_" & ws.Name
.Close
End With
Next ws
wb.Close False
End Sub
Sub Aufruf()
Dim fn As String, Pfad As String, Unterordner As String
Dim i As Integer
Pfad = "D:\xl\Meier\"   'anpassen!
Unterordner = "Split"   'anpassen!
'Ordner b.B. erstellen:
MakeSureDirectoryPathExists Pfad & Unterordner & "\"
'Schleife: alle *.xls-Dateien
fn = Dir(Pfad & "\*.xls")
Do While fn <> ""
BlaetterSpeichern Pfad, fn, Unterordner
i = i + 1
fn = Dir()
Loop
MsgBox i & " Dateien barbeitet."
End Sub

Gruß Matthias
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige