Wir wünschen allen Forenteilnehmern ein frohes Fest und einen guten Rutsch ins neue Jahr. x

Wie erstelle ich aus einer Excel-Liste eine csv-Datei?
#1
Hallo !

Ich habe auch ein Problem bzw. bin neu was Excel angeht!

Folgendes....

Ich habe eine Materialliste und brauche aus dieser Liste 2 CSV Dateien !

Tabelle 1.. (bzw. Blatt 1)

Ist die eigentliche Materialliste in der alle Infos stehen

Tabelle 2.. (bzw. Blatt 2)

Daraus soll die CSV für die Teile-Liste erstellt werden 

Tabelle 3.. (bzw. Blatt 3)

Daraus soll die CSV für die Platten-Liste erstellt werden 



Meine Frage nun....

Ich würde gern wissen, wie ein Makro aussehen muss, um aus der ersten Tabelle (Blatt 1) die beiden CSV per Button zu speichern !

Am besten noch wenn ich erst einen Ordner durch ein Makro mit dem Kunden erstellen kann und Anschluss die beiden CSV darin speichern könnte !

Also 

Button 1 = Ordner mit der Info aus A2;A4

und danach...

Button 2 = CSV aus Blatt 2 und Blatt 3 in dem gerade erzeugten Ordner speichern ( Oder n 2. Button für Blatt 3)

Iss sowas machbar ?

LG Dirk
Top
#2
Hallo Dirk,

ich habe deine Frage aus dem anderen Thread abgetrennt. Bitte immer ein neues Thema eröffnen, sonst wird ein Thread zu unübersichtlich.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
[-] Folgende(r) 1 Nutzer sagt Danke an WillWissen für diesen Beitrag:
  • Dirk3473
Top
#3
Hallo Dirk,

hier mal eine vom üblichen Weg abweichende Variante zur Erstellung von CSV-Dateien aus mehreren Tabellenblättern mit extrem wenig Code.
Kannst Du ja mal ausprobieren.
Normalerweise gehen die meisten über den Weg mit Kopie anlegen und durch Excel als CSV-Datei speichern lassen.

Bitte noch Verweis auf Form2 setzen, falls noch nicht aktiv.

Mittels der Inputbox kannst Du vorher noch einen Unterordner anlegen. Ggf. müsste das ausgiebig getestet werden, da ich Deine Verhältnisse ja so auch nicht kenne.

Die Sub kannst Du dann ja einem Button zuordnen.....

Code in die Zwischenablage
Sub CreateCSVDateiviaClipboard()
'CSV-Datei(en) über die Zwischenablage erstellen
'Ein Verweis auf Microsoft Forms 2.X Object Library muss gesetzt sein
 Dim sPath As String, sUOrdner As String, sArr() As String, i As Integer
 Dim oText As DataObject
 sPath = ThisWorkbook.Path & "\"            'Hauptpfad, ggf. anpassen
 sUOrdner = InputBox("Bitte Unterordner angeben!", "Unterordner anlegen!")
 If StrPtr(sUOrdner) = 0 Then Exit Sub      'Abbruch gewählt
 If sUOrdner <> "" Then
  On Error Resume Next
  ChDir sPath: MkDir sUOrdner               'Unterordner anlegen
  sPath = sPath & sUOrdner & "\"            'Pfad erweitern
 End If
 Set oText = New DataObject
'Hier die Tabellen und Dateinamen vorgeben
 sArr = Split("Tabelle1,Materialliste,Tabelle2,Teileliste", ",")
 For i = 0 To UBound(sArr) - 1 Step 2
  ThisWorkbook.Sheets(sArr(i)).Cells.Copy   'Ganzen Bereich exportieren
  DoEvents
  Close #1: Open sPath & sArr(i + 1) & ".csv" For Output As #1
  oText.GetFromClipboard                    'Daten aus Zwischenablage holen
  Application.CutCopyMode = False
  Print #1, Replace(oText.GetText(1), vbTab, ";"): Close #1
 Next i
 MsgBox "Habe CSV-Dateien erstellt!", vbInformation, "CSV-Datei erstellen"
End Sub
viele Grüße
Karl-Heinz
Top
#4
Moin Moin !

Vielen dank Karl-Heinz

Ich teste das gleich mal !

Danke für die schnelle Hilfe !

LG
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste