1.1k Aufrufe
Gefragt in Tabellenkalkulation von saedroup848 Einsteiger_in (24 Punkte)

Hallo folgendes Problem:

Der Code:

Public Sub Klein()

Set wkb = Worksheets("Klein")
Dim fileName As String
Dim MaxCols As Integer

fileName = Application.GetSaveAsFilename("\\("PC NAME")\Etiketten\Drucken\Klein\Etiketten", "CSV File (*.csv), *.csv")

If fileName = "False" Then
End
End If

On Error GoTo eh
Const adTypeText = 2
Const adSaveCreateOverWrite = 2

Dim BinaryStream
Set BinaryStream = CreateObject("ADODB.Stream")
BinaryStream.Charset = "UTF-8"
BinaryStream.Type = adTypeText
BinaryStream.Open

For r = 1 To 10
s = ""
c = 1
While Not IsEmpty(wkb.Cells(r, c).Value)
s = s & wkb.Cells(r, c).Value & ";"
c = c + 1
Wend
BinaryStream.WriteText s, 1
Next r

BinaryStream.SaveToFile fileName, adSaveCreateOverWrite
BinaryStream.Close

MsgBox "CSV erstellt"

eh:

End Sub

Das CSV File soll unter dem angegebenen Speicherort gespeichert werden im UTF-8 Format ohne dieses Windows Fenster mit der Speichern unter abfrage. Wie bekomm ich diese raus???

Vielen Dank im voraus

3 Antworten

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)

Hallo,

du rufst mit Application.GetSaveAsFilename ja den Speicher-Unter-Dialog auf. Wenn du dieses Fenster nicht haben willst, dann musst du auch einen Namen für die Datei vergeben.

Statt:

fileName = Application.GetSaveAsFilename("\\("PC NAME")\Etiketten\Drucken\Klein\Etiketten", "CSV File (*.csv), *.csv")

If fileName = "False" Then
End
End If

schreibe

fileName ="\\("PC NAME")\Etiketten\Drucken\Klein\Etiketten\Klein.csv"

ActiveWorkbook.SaveAs fileName

Den Namen der Datei musst du natürlich nach deinen Verhältnissen anpassen.

Soll der Dateiname abgefragt werden, so nutze eine Inputbox.

Gruß

M.O.

0 Punkte
Beantwortet von saedroup848 Einsteiger_in (24 Punkte)
Nein das geht nicht weil dann wird die aktive Tabelle als csv gespeichert. ich will die aktive Tabelle aber noch im xlsm Format haben und eine 2te Datei als csv
0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)

Hallo,

dann frage den Dateinamen per Inputbox ab:

fileName = InputBox("Bitte geben Sie einen Namen für die zu speichernde CSV-Datei ein!", "Eingabe Dateiname")

If fileName = "False" Or Len(fileName) < 1 Then Exit Sub

Gruß

M.O.

...