Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1004to1008
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

csv als xls

csv als xls
01.09.2008 13:51:00
Ralf
Liebes Excel Forum,
mit folgendem Code werden alle im Verzeichnis befindlichen CSV-Dateien mit Semikolon als Trennzeichen im richtigen Format geöffnet. Kann jemand den Code so erweitern, dass jetzt alle geöffneten CSV-Dateien als XLS-Dateien abgespeichert und geschlossen werden?
Gruß Ralf

Sub Open_CSV()
Dim lstrCSV_Datei As String
lstrCSV_Datei = Dir("C:\_copy\SamGan\*.CSV")
Do Until lstrCSV_Datei = ""
Workbooks.OpenText Filename:= _
"c:\_copy\SamGan\" & lstrCSV_Datei, local:=True
Range("A:A").TextToColumns , DataType:=xlDelimited, Semicolon:=True
lstrCSV_Datei = Dir
Loop
End Sub


8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: csv als xls
01.09.2008 15:09:00
Jogy
Habe das jetzt nicht getestet, sollte aber so gehen:

Sub Open_CSV()
Dim lstrCSV_Datei As String
Dim wbK as Workbook
lstrCSV_Datei = Dir("C:\_copy\SamGan\*.CSV")
Do Until lstrCSV_Datei = ""
Set wbK = Workbooks.OpenText Filename:= _
"c:\_copy\SamGan\" & lstrCSV_Datei, local:=True
Range("A:A").TextToColumns , DataType:=xlDelimited, Semicolon:=True
wbK.SaveAs fileFormat:=xlNormal
lstrCSV_Datei = Dir
Loop
End Sub

Gruss, Jogy

AW: csv als xls
01.09.2008 15:39:51
Ralf
Hallo Jogy,
klappt leider nicht
bei
Set wbK = Workbooks.OpenText Filename:= _
"c:\_copy\SamGan\" & lstrCSV_Datei, local:=True
kommmt die Meldung "Fehler beim Kompilieren, Erwartet Anweisungende"
Gruß Ralf
Anzeige
AW: csv als xls
01.09.2008 15:48:20
Rudi
Hallo,
die Parameter müssen in () stehen.
Set wbK = Workbooks.OpenText (Filename:= _
"c:\_copy\SamGan\" & lstrCSV_Datei, local:=True)
Gruß
Rudi
AW: csv als xls
01.09.2008 16:04:00
Ralf
Hallo Rudi,
jetzt kommt für den Code folgende Fehlermeldung
"Funktion oder Variable erwartet" das bezieht sich auf "Workbooks.OpenText"
Gruß Ralf

Sub Open_CSV()
Dim lstrCSV_Datei As String
Dim wbK As Workbook
lstrCSV_Datei = Dir("C:\_copy\SamGan\*.CSV")
Do Until lstrCSV_Datei = ""
Set wbK = Workbooks.OpenText(Filename:= _
"c:\_copy\SamGan\" & lstrCSV_Datei, local:=True)
Range("A:A").TextToColumns , DataType:=xlDelimited, Semicolon:=True
wbK.SaveAs FileFormat:=xlNormal
lstrCSV_Datei = Dir
Loop
End Sub


Anzeige
AW: csv als xls
01.09.2008 16:11:00
fcs
Hallo Ralf,
die Zuweisung zu einer als Workbook deklarierten Variablen funktioniert mit diesem Befehl (Opentext)scheinbar nicht.
Probiere folgende Variante.
Falls in dem Verzeichnis sehr viele CSV-Dateien sind (mehr als ca. 10), dann solltest du die Exceldateien nach dem Speichern auch schließen.
Gruß
Franz

Sub Open_CSV()
Dim lstrCSV_Datei As String
Dim strPfad As String
Dim wbK As Workbook
strPfad = "C:\_copy\SamGan\"
lstrCSV_Datei = Dir(strPfad & "*.CSV")
Do Until lstrCSV_Datei = ""
Workbooks.OpenText Filename:=strPfad & lstrCSV_Datei, local:=True
Set wbK = ActiveWorkbook
Range("A:A").TextToColumns , DataType:=xlDelimited, Semicolon:=True
wbK.SaveAs FileFormat:=xlWorkbookNormal, addtomru:=True
'      wbK.Close
lstrCSV_Datei = Dir
Loop
End Sub


Anzeige
AW: csv als xls
01.09.2008 16:19:30
Ralf
Hallo Franz,
funktioniert jetzt fast richtig, De Fehler ist noch das die Dateien direkt unter "D:\" abgespeichert werden und nicht im gewünschten Pfad?
Gruß Ralf
AW: csv als xls
01.09.2008 16:42:00
Ralf
Jetzt funktioniert es, hurra,
Die Reihenfolge war falsch das "wbK.Close" muss im Code nach "lstrCSV_Datei = Dir" kommen.
Vielen Dank an alle
Gruß Ralf
AW: csv als xls
01.09.2008 16:14:51
Rudi
Hallo,
als Alternative:

Public intCalculation As Integer
Sub CSV2XLS()
'Alle .csv (Trennzeichen ;) eines Ordners in .xls umwandeln
Dim oFS As Object, oFolder As Object, oFile As Object
Dim strFolder As String
Dim strTxt As String, myArr, lngL As Long, WKS As Worksheet, iFREE As Integer
With Application.FileDialog(4)
.InitialFileName = "n:\"
.InitialView = 2
.Title = "Bitte einen Ordner wählen"
If .Show = -1 Then
strFolder = .SelectedItems(1)
Else
Exit Sub
End If
End With
On Error GoTo FEHLER
DoEvents
GetMoreSpeed
Set oFS = CreateObject("scripting.filesystemobject")
Set oFolder = oFS.getfolder(strFolder)
iFREE = FreeFile
For Each oFile In oFolder.Files
If oFile.Name Like "*.csv" Then
lngL = 1
Open oFile For Input As iFREE
Set WKS = Workbooks.Add(1).Sheets(1)
Do Until EOF(iFREE)
Line Input #iFREE, strTxt
myArr = Split(strTxt, ";")
With WKS
.Range(.Cells(lngL, 1), .Cells(lngL, UBound(myArr) + 1)) = myArr
End With
lngL = lngL + 1
Loop
Close #iFREE
With WKS.Parent
.SaveAs Replace(oFile, ".csv", ".xls"), xlWorkbookNormal
.Close False
End With
End If
Next oFile
AUFRAEUMEN:
Set oFile = Nothing
Set oFolder = Nothing
Set oFS = Nothing
GetMoreSpeed False
Exit Sub
FEHLER:
If Err.Number Then
MsgBox "Fehler!" & vbLf & Err.Description
Err.Clear
Resume AUFRAEUMEN
End If
End Sub
Sub GetMoreSpeed(Optional ByVal Modus As Boolean = True)
If Modus = True Then intCalculation = Application.Calculation
With Application
.ScreenUpdating = Not Modus
.EnableEvents = Not Modus
.Calculation = IIf(Modus = True, xlManual, intCalculation)
.Cursor = IIf(Modus = True, 2, -4143)
End With
End Sub


Gruß
Rudi

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige