15.01.2019, 11:47
Hallo,
auf der Suche nach einer Möglichkeit aus einem Tabellenblatt eine csv Datei zu erzeugen, ohne das diese sich öffnet bin ich auf den folgenden Code gestoßen:
Diesen möchte ich gerne abwandeln und bin leider maßlos überfordert.
Im ersten Schritt möchte ich, dass automatisch für alle Tabellenblätter eine CSV Datei erstellt werden soll, außer für die ersten drei. Dafür habe ich folgende If Schleife, die ich bereits an anderer Stelle nutze hervorgeholt:
Dann soll der Dateiname nicht über eine Msg.Box abgefragt werden, sondern den Tabellennamen erhalten.
Natürlich ist die Anzahl an Tabellenblätter nicht immer gleich, sodass auch hier fortlaufend eine Überprüfung stattfinden muss.
Zur Erläuterung möchte ich ein Beispiel anführen.
Ich habe immer Tabelle 1, Bestand und EK daraus erzeuge ich mit einem anderen Makro 3 weitere Tabellenblätter. Für die drei weiteren Tabellenblätter soll eine CSV Datei erzeugt werden.
Es sind allerdings nicht immer nur drei Tabellenblätter, die vorher erzeugt werden.
Es könnten auch nur 1 oder sogar 10 sein.
Sicherlich könnte der User in Zukunft auch jedes Tabellenblatt einzeln speichern, aber es wäre definitiv schöner, wenn eine automatische Erzeugung und Speicherung irgendwie zu realisieren wäre.
Über Ratschläge würde ich mich sehr freuen.
Viele Grüße
auf der Suche nach einer Möglichkeit aus einem Tabellenblatt eine csv Datei zu erzeugen, ohne das diese sich öffnet bin ich auf den folgenden Code gestoßen:
Code:
Sub BestelldateialsCSVspeichern()
Dim Dateiname As String
Dateiname = InputBox("Dateiname (ohne Erweiterung)")
If Dateiname = "" Then Exit Sub
Workbooks.Add xlWBATWorksheet
ThisWorkbook.Sheets("Tabelle1").UsedRange.Copy
ActiveSheet.Cells(1, 1).PasteSpecial xlPasteValues
ActiveWorkbook.SaveAs "Dein\Pfad\" & Dateiname, xlCSV, local:=True
ActiveWorkbook.Close False
End Sub
Diesen möchte ich gerne abwandeln und bin leider maßlos überfordert.
Im ersten Schritt möchte ich, dass automatisch für alle Tabellenblätter eine CSV Datei erstellt werden soll, außer für die ersten drei. Dafür habe ich folgende If Schleife, die ich bereits an anderer Stelle nutze hervorgeholt:
Code:
Sub LöschenBestellblätter()
Dim wks As Worksheet
Application.DisplayAlerts = False
For Each wks In ThisWorkbook.Sheets
If LCase(wks.Name) <> "tabelle1" And _
LCase(wks.Name) <> "bestand" And _
LCase(wks.Name) <> "ek" Then
Next
Application.DisplayAlerts = True
End Sub
Dann soll der Dateiname nicht über eine Msg.Box abgefragt werden, sondern den Tabellennamen erhalten.
Natürlich ist die Anzahl an Tabellenblätter nicht immer gleich, sodass auch hier fortlaufend eine Überprüfung stattfinden muss.
Zur Erläuterung möchte ich ein Beispiel anführen.
Ich habe immer Tabelle 1, Bestand und EK daraus erzeuge ich mit einem anderen Makro 3 weitere Tabellenblätter. Für die drei weiteren Tabellenblätter soll eine CSV Datei erzeugt werden.
Es sind allerdings nicht immer nur drei Tabellenblätter, die vorher erzeugt werden.
Es könnten auch nur 1 oder sogar 10 sein.
Sicherlich könnte der User in Zukunft auch jedes Tabellenblatt einzeln speichern, aber es wäre definitiv schöner, wenn eine automatische Erzeugung und Speicherung irgendwie zu realisieren wäre.
Über Ratschläge würde ich mich sehr freuen.
Viele Grüße