Hallo Zusammen,
ich brauche euere Hilfe.
Ich möchte gerne über VBA den Inhalt einer bzw. später auch von mehreren Comboboxen in eine CSV Datei exportieren.
Wie setze ich dies am Besten um?
Danke euch im Voraus,
Gruß
fritz09
Hallo,
PHP-Code:
Sub x()
Dim arr As Variant
Dim WS As Worksheet
arr = ComboBox1.List
Set WS = Worksheets.Add
WS.Range("A1").Resize(UBound(arr, 1) + 1, UBound(arr, 2) + 1) = arr
WS.ExportAsFixedFormat xlTypePDF
Application.DisplayAlerts = False
WS.Delete
Application.DisplayAlerts = True
End Sub
Ich habe es jetzt zum Test so gelöst:
Sub SaveAsCSV()
Dim DstFileName As String, DstPfad As String
Dim Delimiter As String
Dim strZe As String
Dim lRow As Long, lCol As Integer
Dim Ze As Long, Sp As Integer
Dim ff As Integer
On Error GoTo ErrorHandler
DstPfad = "T:\" 'Anpassen, muss bereits existieren
strDateiname = InputBox("Bitte den Namen der CSV-Datei angeben.")
DstFileName = strDateiname & "CSV-Export.CSV" 'InputBox("Bitte den Namen der CSV-Datei angeben.") 'CSV-Export.csv
Delimiter = ";"
With ActiveSheet
Range("A6").Value = Worksheets("Eingabe").TextBox4.Text
lRow = .Cells.Find(what:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
lCol = .Cells.Find(what:="*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
ff = FreeFile
Open DstFileName For Output As #ff
' Zeile für Zeile lesen und schreiben ...
For Ze = 1 To lRow
For Sp = 1 To lCol - 1
strZe = strZe & .Cells(Ze, Sp) & Delimiter
Next Sp
strZe = strZe & .Cells(Ze, Sp)
Print #ff, strZe
strZe = ""
Next Ze
End With
ErrorHandler:
If Err.Number <> 0 Then MsgBox "Fehler Nr. " & Err.Number & vbCrLf _
& Err.Description, vbCritical + vbOKOnly, "Das ging schief ..."
If ff > 0 Then Close #ff
End Sub
Was nur nicht verstehe. Die CSV Datei wird nicht im Laufwerk T erzeugt sondern immer in Dokumente warum ist das so?
Hallo,
weil Du den Pfad auch nicht verwendest. Somit: Open DstPfad & DstFileName
Gruß
Hallo,
... uppps ... sorry ... habe den Code einfach nur kopiert, ohne ihn an das CSV anzupassen.
Diese Zeile
WS.ExportAsFixedFormat xlTypePDF
durch diese ersetzen
WS.SaveAs Filename:="C:\DeinPfad\Deine.csv", FileFormat:=xlCSVUTF8, CreateBackup:=False
(20.02.2022, 10:48)maninweb schrieb: [ -> ]Hallo,
weil Du den Pfad auch nicht verwendest. Somit: Open DstPfad & DstFileName
Gruß
Nach deiner Aussage müsste es so auch nicht funktionieren. Aber so nimmt er den den Pfad!
Sub SaveAsCSV()
Dim DstFileName As String, DstPfad As String
Dim Delimiter As String
Dim strZe As String
Dim lRow As Long, lCol As Integer
Dim Ze As Long, Sp As Integer
Dim ff As Integer
Dim strDateiname As String
On Error GoTo ErrorHandler
DstPfad = "T:\" 'Anpassen, muss bereits existieren
strDateiname = InputBox("Bitte den Namen der CSV-Datei angeben." & vbNewLine & "Als Name nur die Kommissionsnummer angeben.")
DstFileName = DstPfad & strDateiname & "_CSV-Export.csv"
Delimiter = ";"
With ActiveSheet
Range("A6").Value = Worksheets("Eingabe").TextBox4.Text
Range("A7").Value = Worksheets("Eingabe").TextBox1.Text
Range("A8").Value = Worksheets("Eingabe").TextBox2.Text
lRow = .Cells.Find(what:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
lCol = .Cells.Find(what:="*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
ff = FreeFile
Open DstFileName For Output As #ff
usw...
Hallo,
könnte mir mal bitte jemand erklären, was ich falsch mache ?
Der TO gibt eine Vorgabe ... ich antworte ... und habe dummerdings ein PDF gespeichert ... gut, mein Fehler.
Der TO zeigt anschließend Code, der nichts ... aber auch gar nichts mit seiner Vorgabe zu tun hat und er ignoriert meinen Post völlig.
Ich korrigiere meinen Post ... der TO postet erneut Code, der nichts mit der Vorgabe zu tun hat und ignoriert meine Korrektur ebenfalls.
Was ist los mit den Leuten ??? Von den letzten Anworten gerade mal 1 Feedback !!! Kann doch nicht wahr sein.