148 Aufrufe
Gefragt in Windows 10 von
Bearbeitet von halfstone
Hallo Zusammen,

ich habe eine Datei in der 35 einzelne Tabellenblätter sind. Aktuell trenne ich die einzelnen Blätter händisch und speichere sie unter einem neuen Namen ab.

Das dauert natürlich seine Zeit. Ich hab mich schon ein wenig in die Welt der Makros eingelesen und auch schon ein paar gefunden, die mir in diese Richtung weiter helfen.

Dieses hier zum Beispiel ist fast perfekt.

Allerdings weiß ich nicht, wie ich es abändern soll, dass die einzelnen Dateien nicht so heißen, wie auch die Tabellenblätter heißen.

Rem: In Variable "Pfad" den Pfad, in das die Bl?tter abgespeichert werden sollen, schreiben
Const Pfad = "ich habe den Originalpfad mal rausgenommen..."
Sub Bl?tter_einzeln_speichern()
Dim i As Integer, Speichername As String
Application.ScreenUpdating = False
Rem: Schleife um jedes Tabellenblatt anzusprechen
Rem: Schleife l?uft von hinten nach vorne
For i = Worksheets.Count To 2 Step -1
Rem: Blattname in Variable "Speichername" schreiben
Speichername = ThisWorkbook.Sheets(i).Name
Rem: Das durch die Schleife agesprochene Tabellenblatt in eine neue Datei verschieben
Sheets(i).Move
Rem: Datei mit dem verschobenen Tabellenblatt unter dem Namen, der in Variable "Speichername"
Rem: gespeichert wurde abspeichern
ActiveWorkbook.SaveAs Filename:=Pfad & Speichername & ".xls"
Rem: Abgespeicherte Datei schlie?en
ActiveWindow.Close
Next
End Sub

Mir ist durchaus bewusst, dass ich, wenn jedes Tabellenblatt einen neuen Namen erhalten soll, die Befehle entsprechend 35 Mal geben muss, da es ja 35 Tabellenblätter sind.

1 Antwort

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

wie sollen die Namen der einzelnen Tabellenbläter denn ermittelt werden? Du kannst über ene Schleife natürlich auch jedesmal den Namen für die neue Datei abfragen, oder einen Namen generieren (z.B. Datei1, Datei2 etc, oder 2019_02_19_01, 2019_02_19_02 ..).

Gruß

M.O.
...