Anzeige
Archiv - Navigation
1884to1888
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
Inhaltsverzeichnis

Tabellenblätter im Laufwerk speichern

Tabellenblätter im Laufwerk speichern
13.06.2022 15:18:46
Detlef
Hallo liebe VBA-Freunde,
ich brauche eure Hilfe.
Ausgangslage:
Ich habe eine Arbeitsmappe mit 50+ Tabellenblättern.
Jedes Tabellenblatt soll einzeln über einen separaten Pfad als ".xls"-Datei an unterschiedliche Orte im Laufwerk gespeichert werden.
Der Pfad, wo das Blatt gespeichert werden soll, findet sich in dem Tabellenblatt "Pfade".
Bspw.
"Tabelle 1" soll in "C:\Users\Dummy\Desktop\Archiv\Tabelle 1\",
"Tabelle 2" soll in "C:\Users\Dummy\Desktop\Archiv\Tabelle 2\" und
"Tabelle n" soll in "C:\Users\Dummy\Desktop\Archiv\Tabelle n\" gespeichert werden
Der Name der Tabellenblätter soll gleichzeitig auch der Name der zu speichernden Datei sein.
Meine Idee war folgende:
Wenn mit einem IF-Befehl gearbeitet wird, lässt sich der Code beliebig erweitern.
Sinngemäß:
If "Tabelle 1", dann den in "Pfade" für "Tabelle 1" vorgesehenen Pfad zum speichern nutzen; sonst nichts
If "Tabelle 2", dann den in "Pfade" für "Tabelle 2" vorgesehenen Pfad zum speichern nutzen; sonst nichts
If "Tabelle n", dann den in "Pfade" für "Tabelle n" vorgesehenen Pfad zum speichern nutzen; End If
Ich hoffe Ihr könnt damit was anfangen und vielen vielen Dank im Voraus.
Ihr helft mir unheimlich damit!
Danke und liebe Grüße
Detlef

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblätter im Laufwerk speichern
13.06.2022 15:48:07
Oberschlumpf
Hi Detlef,
zeig doch bitte mal per Upload eine Bsp-Datei mit den entsprechenden Bsp-Daten.
Und noch n paar Fragen:
1. MÜSSEN die Dateien im XLS-Format gespeichert werden? Du nutzt Excel 2016. Die Dateien könnten im neuen XLSX- oder XLSM-Format gespeichert werden
2. Enthalten die einzelnen Tabellenblätter VBA-Code im Klassenmodul? Muss der Code in der Einzeldatei mit gespeichert werden, oder soll das Tabellenblatt ohne Code gespeichert werden?
3. Du weißt, dass z Bsp im Verzeichnis "C:\Users\Dummy\Desktop\Archiv\Tabelle 1\" die Datei "Tabelle 1.xls" nur 1x gespeichert werden kann?
Wenn du den Code wiederholst, soll dann beim zweiten Mal die alte "Tabelle 1.xls" mit der neuen "Tabelle 1.xls" überschrieben werden, oder soll dann z Bsp eine "Tabelle 1-2.xls" erstellt werden?
Frage 3 gilt für jede Datei.
Ciao
Thorsten
Anzeige
AW: Tabellenblätter im Laufwerk speichern
13.06.2022 16:42:21
Detlef
Vielen Dank für Euer Interesse @Thomas @Uwe,
@Thomas:
1)
ideal als ".xlsx-Datei"
2)
als Arbeitsmappe ohne Makros abspeichern
3)
Die Datei soll nicht überschrieben werden. Toll wäre, wenn die Datei ".2", ".3" usw. im Namen stehen hat, wenn man die doppelt/dreifach speichern möchte
Vielen Dank für Eure Hilfe
Detlef
AW: Tabellenblätter im Laufwerk speichern
13.06.2022 16:50:05
Detlef
Zum besseren Verständnis:
- 1 große Arbeitsmappe mit vielen Tabellenblättern
- jedes Tabellenblatt soll über einen individuellen Pfad im Laufwerk abgelegt werden
- der Name der abzulegenden Datei soll = Name des Tabellenblattes sein
- Format der abzulegenden Datei: ".xlsx" (Datei ohne Makros)
- Pfad, wo die einzelnen Blätter abgelegt werden sollen, ist im Blatt "Pfade" gespeichert
- Datei soll im Zielordner nicht überschrieben werden
Ihr seid eine super Hilfe.
Vielen Dank
Detlef
Anzeige
Update
13.06.2022 17:00:00
UweD
Hallo nochmal
Bei vorhandener Datei anstelle .2 ; .3 usw. wird der Zeitstempel verwendet.
OK?

ub Speichern()
Dim TB As Worksheet, Pfad As String, NName As String, Ext As String
Dim FSO, WB As Workbook, NeuName As String
Pfad = "E:\Excel\temp\" 'mit \ am Ende
Ext = ".xlsx"
Set FSO = CreateObject("Scripting.FileSystemObject")
Application.ScreenUpdating = False
For Each TB In ThisWorkbook.Sheets
NName = TB.Name
If Not FSO.FolderExists(Pfad & NName) Then FSO.createfolder (Pfad & NName)
TB.Copy
Set WB = ActiveWorkbook
If Dir(Pfad & NName & "\" & NName & Ext)  "" Then
NeuName = Pfad & NName & "\" & NName & Format(Now, "_YYYYMMDDhhmmss") & Ext
Else
NeuName = Pfad & NName & "\" & NName & Ext
End If
WB.SaveAs NeuName
WB.Close
Next
End Sub
LG UweD
Anzeige
AW: Tabellenblätter im Laufwerk speichern
13.06.2022 16:51:56
Oberschlumpf
Hi Detlef
a) ich heiße nicht Thomas
b) kannst du bitte noch eine Bsp-Datei mit erforderlichen Bsp-Daten per Upload zeigen?
und c) in wie weit hast du Uwe's Idee schon ausprobiert? Vielleicht muss sein Code ja nur verändert werden. Dann muss ich/irgdwer anders - nich alles - neu programmieren.
Also: Was genau passiert, nachdem du Uwe's Code gestartet hast?
Ciao
thORSTEN
AW: Tabellenblätter im Laufwerk speichern
13.06.2022 17:14:17
Detlef
@Thorsten
ich habe Uwes Makros gestartet und die funktioniert schonmal ohne eine Fehlermeldung.
Leider werden die Blätter in einem einzigen Zielordner gespeichert.
Idealerweise speichert die Makro die Blätter in ihrem entsprechenden Zielordner.
Im Blatt "Pfade" ist hinterlegt, über welchen Pfad die einzelnen Blätter gespeichert werden sollen.

Anzeige
AW: Tabellenblätter im Laufwerk speichern
13.06.2022 17:22:21
Oberschlumpf
1x informiere ich noch:
no file = no party
AW: Tabellenblätter im Laufwerk speichern
14.06.2022 08:47:52
Detlef
Hey,
anbei findet ihr eine Beispielfile.
Danke für Euren Support.
Liebe Grüße
Detlef
AW: Tabellenblätter im Laufwerk speichern
14.06.2022 09:40:37
Oberschlumpf
Hi Detlef,
der Anfang ist getan! :-)
Nachdem dein Uploadvorgang abgeschlossen ist, musst du den dann sichtbaren Link kopieren und in deiner nächsten Antwort einfügen, damit auch wir auf deine Bsp-Datei zugreifen können.
Ciao
Thorsten
AW: Tabellenblätter im Laufwerk speichern
14.06.2022 10:34:52
Detlef
https://www.herber.de/bbs/user/153548.xlsm
anbei ist der Link zur File mit @Uwes Lösungsansatz.
Leider speichert der Code die Blätter in den Ordner, wo die Ausgangsdatei liegt.
Ideal wäre es, wenn über das Blatt "Pfade" der jeweilige Pfad zum Blatt genommen wird.
DANKE :)
Anzeige
AW: Tabellenblätter im Laufwerk speichern
14.06.2022 11:15:08
Detlef
ich bekomme es inzwischen soweit gelöst, dass die Blätter in dem entsprechenden Zielordner gespeichert werden.

Sub speichern ()
Const pfad_1 = "C:\Users\...\" 'anpassen
Dim datei_1 As String
datei_1 = "Tabelle1"
Sheets("Tabelle1").Copy
ActiveWorkbook.SaveAs pfad_1 & datei_1
ActiveWorkbook.Close 'oder auch nicht schließen
End Sub

wie lässt sich der Code anpassen, dass für Tabellenblatt 1 der Pfad im Blatt "Pfade" Zelle ("C2) genommen wird?
Dankeschön
AW: Tabellenblätter im Laufwerk speichern
14.06.2022 13:02:29
GerdL
Moin

Dim pfad_1 As String
pfad_1 = Thisworkbook.Worksheets("Pfade").Range("C2")
'..................................
Gruß Gerd
Anzeige
AW: Tabellenblätter im Laufwerk speichern
14.06.2022 14:43:34
Detlef
funktioniert :)
dankeschön
dann nicht mehr offen (owT)
15.06.2022 10:09:51
Pierre
AW: Tabellenblätter im Laufwerk speichern
14.06.2022 11:24:30
UweD
Hallo nochmal
so?

Option Explicit
Sub Speichern()
Dim Tb As Worksheet, TbP As Worksheet, Pfad As String, NName As String, Ext As String
Dim FSO, WB As Workbook, Z As Integer, NeuName As String
Ext = ".xlsx"
Set TbP = Sheets("Pfade")
Set FSO = CreateObject("Scripting.FileSystemObject")
Application.ScreenUpdating = False 'beschleunigt das Makro
For Each Tb In ThisWorkbook.Sheets
NName = Tb.Name
If NName  TbP.Name Then 'nicht wenn Blatt=Pfade
If WorksheetFunction.CountIf(TbP.Columns(2), NName) > 0 Then
Z = WorksheetFunction.Match(NName, TbP.Columns(2), 0) ' in Zeile
Pfad = TbP.Cells(Z, 3) & "\"
Else
MsgBox NName & ":  in Pfade nicht gefunden"
End If
'Unterverzeichnisse ggf anlegen
If Not FSO.FolderExists(Pfad) Then FSO.createfolder (Pfad)
If Not FSO.FolderExists(Pfad & NName) Then FSO.createfolder (Pfad & NName)
'Datei bereits vorhanden?
If Dir(Pfad & NName & "\" & NName & Ext)  "" Then
NeuName = Pfad & NName & "\" & NName & Format(Now, "_YYYYMMDDhhmmss") & Ext
Else
NeuName = Pfad & NName & "\" & NName & Ext
End If
'Blatt als neue Datei erzeugen
Tb.Copy
Set WB = ActiveWorkbook
'Speicher und schließen
WB.SaveAs NeuName
WB.Close
End If
Next
End Sub
Aber!!!!!
Die Blattnamen in Pfade Spalte B haben ein Leerzeichen und passen nicht zum tatsächlichen Blattnamen
Also berichtigen
LG UweD
Anzeige
AW: Tabellenblätter im Laufwerk speichern
14.06.2022 12:57:22
Detlef
Danke @Uwe,
ich habe die Namen korrigiert aber leider läuft die Makro noch nicht reibungslos:
MsgBox "Tabelle1: in Pfade nicht gefunden"
Debuggen: gelde Markierung in Zeile:
'Unterverzeichnisse ggf anlegen
If Not FSO.FolderExists(Pfad) Then FSO.createfolder (Pfad)
If Not FSO.FolderExists(Pfad & NName) Then FSO.createfolder (Pfad & NName)

danke für Eure Bemühung
AW: Tabellenblätter im Laufwerk speichern
14.06.2022 13:49:28
UweD
In deiner Musterdatei läuft das ohne Probleme
1)
Die Blattnamen müssen genauso heißen wie in deiner Auflistung in Pfade, Spalte B.
inkl. der Leerzeichen.
2)
Ebenfalls sollte der "Basisordner" bereits vorhanden sein.
Ich prüfe nur die letzten 2 Stufen
...\Blätter in Laufwerk\1 usw. und den neuen
...\Blätter in Laufwerk\1\Tabelle1 usw.
LG UweD
Anzeige
AW: Tabellenblätter im Laufwerk speichern
14.06.2022 11:33:42
Oberschlumpf
Hi Detlef
ja, danke schön - damit kann man arbeiten.
Ich bin mit meiner Idee nun zwar fast fertig, sehe aber, dass Uwe schneller war :-)
Bin auf deine Antwort zu Uwe's Idee neugierig.
Ciao
Thorsten
AW: Tabellenblätter im Laufwerk speichern
13.06.2022 16:04:25
UweD
Hallo

Sub Speichern()
Dim TB As Worksheet, Pfad As String, NName As String, Ext As String
Dim FSO, WB As Workbook
Pfad = "E:\Excel\temp\" 'mit \ am Ende
Ext = ".xlsx"
Set FSO = CreateObject("Scripting.FileSystemObject")
For Each TB In ThisWorkbook.Sheets
NName = TB.Name
If Not FSO.FolderExists(Pfad & NName) Then FSO.createfolder (Pfad & NName)
TB.Copy
Set WB = ActiveWorkbook
'Application.DisplayAlerts = False ' Bei Bedarf wird automatisch überschrieben
WB.SaveAs Pfad & NName & "\" & NName & Ext
'Application.DisplayAlerts = True
WB.Close
Next
End Sub
LG UweD
Anzeige
AW: Tabellenblätter im Laufwerk speichern
13.06.2022 16:59:29
Detlef
@Uwe
Vielen Dank für die schnelle Antwort.
Leider werden die Blätter nicht im vorgesehenen Zielordner gespeichert.
Ich glaube es fehlt die Verbindung zum Ablagepfad in dem Blatt "Pfade"
bspw.
"Tabelle 1" soll über Zelle ("B2) im Blatt "Pfade" gespeichert werden
"Tabelle 2" über Zelle ("B3") im Blatt "Pfade,
"Tabelle n" über Zelle ("Bn") im Blatt Pfade.
Vielen Dank für Eure Hilfe.
Detlef
AW: Tabellenblätter im Laufwerk speichern
13.06.2022 17:02:04
UweD
Das mit den Zellen B2, B3 usw ist aber jetzt neu.
Ich bin raus
LG UweD

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige