Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1276to1280
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

XLS in CSV Problem mit VBS Fehler 13

XLS in CSV Problem mit VBS Fehler 13
basti
Hallo zusammen,
ich habe im Netz ein Super Skript zum Umwandeln von XLS in CSV gefunden welches auch super läuft. Doch jetzt habe ich den der XLS Datei eine Formel und bekomme beim umwandeln den Fehler 13 (Typen unverträglich). Wenn ich die Formel in F2 entferne läuft das Skript ohne Probleme. Kann mir jemand helfen?
Userbild
Hier die Batch Datei für den Aufruf der VBS:

@echo off & setlocal
for /f "delims=" %%i in ('cscript //nologo "C:\test\neu\xls2csv.vbs" "C:\test\neu\PERMANENTE.XLS"') do set Erg=%%i
If "%Erg%"=="OK" goto :Weiter
If "%Erg%" neq "" echo %Erg%
::Fehlermeldung lesen lassen ...
pause
goto :eof
:Weiter
echo Hier geht es nach der Konvertierung weiter ...

Hier das VBS Skript:

'XLS2CSV.vbs
Const TABELLE = "Tabelle1" 'Zu exportierende Daten in "Tabelle1" ...
Const ABZEILE = 1 '... beginnen in Zeile 1 ...
Const ABSPALTE = 1 '... und Spalte A ...
Const ANZSPALTEN = 15 '... und umfassen 10 zusammenhängende Spalten.
Const ZIELPFAD = "C:\test\neu\" 'Zielpfad mit abschließendem \ angeben
Const TRENN = ";" 'Trennzeichen
Dim oDatei
Set fso = CreateObject("Scripting.FileSystemObject")
If WScript.Arguments.Count WScript.Echo "Angabe der Excel-Datei erforderlich!"
WScript.Quit(1)
End If
Set oArgs = WScript.Arguments
sXLDat = oArgs(0)
If Not fso.FileExists(sXLDat) Then
WScript.Echo sXLDat & " nicht gefunden!"
WScript.Quit(1)
End If
sXLSDatei = fso.GetFile(sXLDat).Path 'Vollständigen Dateinamen mit Pfad ermitteln
If LCase(Right(sXLSDatei, 4)) ".xls" Then
WScript.Echo "Angabe einer Excel-Datei (Typ .xls) erforderlich!"
WScript.Quit(1)
End If
sXLSPfad = Left(sXLSDatei, InStrRev(sXLSDatei, "\")) 'Pfad mit abschließendem "\"
sXLSName = Mid(sXLSDatei, InStrRev(sXLSDatei, "\") + 1)
sDateiName = Left(sXLSName, Len(sXLSName) - 4) 'ohne ".xls"
DATEI = sXLSPfad & sDateiName & ".CSV" 'Zieldatei
Set oDatei = fso.OpenTextFile(DATEI, 2, True) 'Datei immer neu erstellen
On Error Resume Next
Set XL = WScript.CreateObject("Excel.Application")
If Err.Number Then Fehler Err.Number, Err.Description
Set oWB = XL.Workbooks.Open(sXLSDatei)
If Err.Number Then Fehler Err.Number, Err.Description
iZeile = ABZEILE
With oWB.Worksheets(TABELLE)
If Err.Number Then Fehler Err.Number, Err.Description
Do While .Cells(iZeile, ABSPALTE).Value ""
sZeile = .Cells(iZeile, ABSPALTE).Value
For i = 2 To ANZSPALTEN
sZeile = sZeile & TRENN & .Cells(iZeile, ABSPALTE + i - 1).Value
Next
oDatei.WriteLine sZeile
If Err.Number Then Fehler Err.Number, Err.Description
iZeile = iZeile + 1
If Zeile > 65536 Then Exit Do
Loop
End With
oDatei.Close
oWB.Saved = True
XL.Application.Quit
WScript.Echo "OK"
Sub Fehler(Fehlernummer, Fehlertext)
WScript.Echo "Fehler " & Fehlernummer & " (" & Fehlertext & ") aufgetreten!"
oWB.Saved = True
XL.Application.Quit
WScript.Quit(Err.Number)
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: XLS in CSV Problem mit VBS Fehler 13
12.09.2012 11:13:09
Rudi
Hallo,
evtl. mit
For i = 2 To ANZSPALTEN
sZeile = sZeile & TRENN & .Cells(iZeile, ABSPALTE + i - 1).Text
Next
Gruß
Rudi

AW: XLS in CSV Problem mit VBS Fehler 13
12.09.2012 11:34:58
basti
Hallo,
danke für die schnelle hilfe aber leider hat es kein erfolg gebracht.
Das Skript läuft jetzt zwar ohne fehler 13 durch und die csv wird auch erstellt aber das errechnet Datum (F2) wird in der CSV nicht angezeigt.
Hier die CSV:
Test1;Test2;Test3;Test4;Test5;Test6;Test7;Test8;Test9;Test10
01.01.2012;12.12.2012;vvv;vv;ww;#NAME?;ggg;ggg;PP;#NAME?

AW: XLS in CSV Problem mit VBS Fehler 13
12.09.2012 12:09:37
Rudi
hallo,
muss das unbedingt VBS sein?
VBA:
Public Sub prcCreateCSV()
Dim intFileNumber As Integer
Dim lngRow As Long
Dim vntArray As Variant
Dim intItem As Integer
Dim strText As String
Dim i As Integer
Const strSep As String = ";"
With Selection.CurrentRegion
For lngRow = 1 To .Rows.Count
vntArray = .Cells(lngRow, 1).Resize(, .Columns.Count)
vntArray = WorksheetFunction.Transpose(WorksheetFunction.Transpose(vntArray))
If strText = "" Then
strText = Join(vntArray, strSep)
Else
strText = strText _
& vbCrLf _
& IIf(lngRow = .Rows.Count, Join(vntArray, ";"), Join(vntArray, strSep))
End If
Next
End With
intFileNumber = FreeFile
With ActiveWorkbook
.Save
Open _
.Path & "\" _
& Left$(.Name, Len(.Name) - 4) _
& "_" & ActiveSheet.Name _
& ".csv" _
For Output As #intFileNumber
End With
Print #intFileNumber, strText
Close #intFileNumber
End Sub

Gruß
Rudi

Anzeige
AW: XLS in CSV Problem mit VBS Fehler 13
12.09.2012 12:56:57
basti
Hallo,
ja sollte via VBS gehen weil die ich Datei nicht extra öffnen will. Da das ganze per Taskplan gestartet werden soll.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige