Ganze tabelle in .csv Speichern
Hallo,
ich nutze den VBA Code, der hier besprochen wurde, um aus einer Tabelle mit verschiedenen Blättern einzelne .csv Dateien zu erzeugen.
Funktioniert reibungslos...
Nur wenn ich Abbrechen drücke, dann kommt der Fehler "Typen unverträglich"...
Wenn ich hingegen nichts eingebe und nur OK drücke endet das Makro wie gewünscht.
Ich habe alles probiert (was das Netz zur Verfügung stellt), komme aber mit dieser Application.Inputbox nicht weiter...
Mit einer normalen Inputbox funktioniert zwar das Abbrechen, aber der Rest geht dann nicht mehr
Hier nochmal mein Code:
Was muss ich anpassen? Der Code arbeitet so perfekt nur das ist unschön, weil die Tabelle verschiedene Nutzer haben soll und ich eine Fehlermeldung dann unpassend finde.
Vielen Dank
VG
xenon
ich nutze den VBA Code, der hier besprochen wurde, um aus einer Tabelle mit verschiedenen Blättern einzelne .csv Dateien zu erzeugen.
Funktioniert reibungslos...
Nur wenn ich Abbrechen drücke, dann kommt der Fehler "Typen unverträglich"...
Wenn ich hingegen nichts eingebe und nur OK drücke endet das Makro wie gewünscht.
Ich habe alles probiert (was das Netz zur Verfügung stellt), komme aber mit dieser Application.Inputbox nicht weiter...
Mit einer normalen Inputbox funktioniert zwar das Abbrechen, aber der Rest geht dann nicht mehr
Hier nochmal mein Code:
Sub speichern_als()
Dim I_Sheets As Integer
Dim F_Name As String
Dim F_Path As String
F_Path = Application.InputBox("Pfad angeben")
If F_Name = "" Then Exit Sub
For I_Sheets = 1 To Sheets.Count
F_Name = F_Path + Sheets(I_Sheets).Name + ".csv"
Sheets(I_Sheets).SaveAs Filename:=F_Name, FileFormat:= _
xlCSV, CreateBackup:=False
Next I_Sheets
End Sub
Was muss ich anpassen? Der Code arbeitet so perfekt nur das ist unschön, weil die Tabelle verschiedene Nutzer haben soll und ich eine Fehlermeldung dann unpassend finde.
Vielen Dank
VG
xenon
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 665936
Url: https://administrator.de/forum/ganze-tabelle-in-csv-speichern-665936.html
Ausgedruckt am: 06.04.2025 um 06:04 Uhr
6 Kommentare
Neuester Kommentar
Versuch mal:
Dim F_Name As String = ""
Du dimensionierst zwar das String es sollte aber faktisch noch NULL sein, damit erzeugst du dann eine Unverträglichkeit.
EDIT:
Blödsinn, hab' eben nicht genau hingeschaut.
Warum machst du das hier:
If F_Name = "" Then Exit Sub
F_Name wurde bis dahin doch noch gar nicht gesetzt.
Du fragst F_Path in der Inputbox ab.
Und du solltest
F_Path = Application.InputBox(prompt := "Pfad angeben", type := 2)
schreiben, damit klar ist, dass ein Text erwartet wird.
https://docs.microsoft.com/de-de/office/vba/api/excel.application.inputb ...
Dim F_Name As String = ""
Du dimensionierst zwar das String es sollte aber faktisch noch NULL sein, damit erzeugst du dann eine Unverträglichkeit.
EDIT:
Blödsinn, hab' eben nicht genau hingeschaut.
Warum machst du das hier:
If F_Name = "" Then Exit Sub
F_Name wurde bis dahin doch noch gar nicht gesetzt.
Du fragst F_Path in der Inputbox ab.
Und du solltest
F_Path = Application.InputBox(prompt := "Pfad angeben", type := 2)
schreiben, damit klar ist, dass ein Text erwartet wird.
https://docs.microsoft.com/de-de/office/vba/api/excel.application.inputb ...
Ganz oben, wo du es ja schon hast:
Dim F_Name As String = ""
Dim F_Path As String = ""
Damit du, wenn du abbrechen drückst, zumindest die Variable gefüllt hast.
Dann sollte
If F_Path = "" Then Exit Sub
zumindest die Funktion abbrechen.
Unterm Strich ist das aber alles unschön, denn du bist von einer korrekten Eingabe abhängig.
Du hast keinerlei Prüfung, ob der Pfad korrekt ist.
Dim F_Name As String = ""
Dim F_Path As String = ""
Damit du, wenn du abbrechen drückst, zumindest die Variable gefüllt hast.
Dann sollte
If F_Path = "" Then Exit Sub
zumindest die Funktion abbrechen.
Unterm Strich ist das aber alles unschön, denn du bist von einer korrekten Eingabe abhängig.
Du hast keinerlei Prüfung, ob der Pfad korrekt ist.
Besser wäre:
Dim F_Path As String
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = "C:\"
.Title = "Ordnerauswahl"
.ButtonName = "Auswahl..."
.InitialView = msoFileDialogViewList
If .Show = -1 Then
F_Path = .SelectedItems(1)
If Right(F_Path , 1) <> "\" Then F_Path = F_Path & "\"
Else
F_Path = ""
End If
End With
If F_Path = "" Then
MsgBox ("Kein Ordner gewählt!")
Exit Sub
End If

Nur noch nachträglich zur Info falls es noch interessiert:
Das Ergebnis einer InputBox ist False wenn auf Abbrechen geklickt wird, kein leerer String
Gruß w.
Das Ergebnis einer InputBox ist False wenn auf Abbrechen geklickt wird, kein leerer String
Gruß w.