938 Aufrufe
Gefragt in Tabellenkalkulation von
Hallo liebe Excelexperten

habe ein größeres Excelproblem vor dem ich stehe und hoffe hier die entsprechende Hilfe zu finden.

Prinzipiell will ich aus einer xlsx-Datei einzelne Tabellenblätter als einzelne csv-Datei speicher.

Konkret: Die Anzahl der zu speichernden Tabellenblätter kann zwischen 1 und 10 schwanken (Bezeichnung Tabellenblätter 1.HDR / 2.HDR .... 10.HDR).
Idealerweise ist die csv-Datei nach dem Wert in O1 benannt und zeigt nur die Daten aus den Spalten J+O.

Hoffe mich verständlich ausgedrückt zu haben....ist so etwas per VBA lösbar?
bzw. wie sieht der Code dazu aus?
(ich bekomms leider ganz und gar nicht auf die Reihe)

Besten Dank im Vorraus und liebe Grüße
Sandra

1 Antwort

0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Sandra,
den Code in ein Modul einfügen.
Es wird eine neue Tabelle und Arbeitsmappe mit den Werten aus Spalte J:O erstellt, die dann mit dem Ergebnis aus O1 als Name gespeichtert wird.
Bitte den Pfad anpassen.


Option Explicit
Sub Tabellenblatt()
Dim Name As String
Application.ScreenUpdating = False 'Tabellenwechsel unterbinden
If Range("O1") = "" Then Exit Sub
Application.DisplayAlerts = False 'Fehlermeldungen werden unterdrückt
Sheets.Add.Name = Range("O1") 'Tabellenblatte wird erstellt Name = Zelle O1
Sheets("Tabelle1").Range("O:O").Copy _
Destination:=ActiveSheet.Range("O:O") ' Daten werden übernommen
Sheets("Tabelle1").Range("J:J").Copy _
Destination:=ActiveSheet.Range("J:J") ' Daten werden übernommen
ActiveWindow.SelectedSheets.Copy 'Neue Arbeitsmappe wird erstellt
Dim strDateiname As String
strDateiname = Range("O1").Value & ".CSV" 'Arbeitsmappe Name = Zelle O1 + CSV
ActiveWorkbook.SaveCopyAs Filename:="C:\Dokumente und Einstellungen\All Users\" & strDateiname
ActiveWindow.Close 'Arteitsmappe wird geschlossen
ActiveWindow.SelectedSheets.Delete 'Arbeitsblatt wird gelöscht
Application.DisplayAlerts = True 'Fehlermeldungen werden wieder aktiviert
End Sub
...