Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
260to264
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
260to264
260to264
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

CSV Import mit VBA

CSV Import mit VBA
28.05.2003 16:56:14
Florian Weiß
Hallo,

ich wollte Euch einen neuen Lösungsansatz zum CSV Import geben, da alle die ich finden konnte, sich als nicht ausreichend herausgestellt haben.

Damit es funktioniert müsst Ihr im Codefenster auf Verweise>Microsoft Scripting Runtime aktivieren.

Code:
======================================================
Function funcImportTextFile(strFullPath As String, deLimiter As String) As Boolean

On Error GoTo ErrHandler

Dim ar() As String
Dim fso As FileSystemObject
Dim ts As TextStream
Dim strActLine As String
Dim i&
Dim iRow&
Set fso = New FileSystemObject
Set ts = fso.OpenTextFile(strFullPath, ForReading)

Workbooks.Add 'Wird in eine neue Mappe importiert, kann geändert werden

'Erste Reihe
iRow = 1
'einlesen
Do Until ts.AtEndOfStream

strActLine = ts.ReadLine
ar() = Split(strActLine, deLimiter)

For i = 0 To UBound(ar) Step 1

If IsNumeric(ar(i)) Then
Cells(iRow, i + 1) = CDbl(ar(i))
ElseIf IsDate(ar(i)) Then
Cells(iRow, i + 1) = CDate(ar(i))
ElseIf IsError(ar(i)) Then
Cells(iRow, i + 1) = "ERROR"
Else
Cells(iRow, i + 1) = ar(i)
End If
Next i

iRow = iRow + 1

Loop

funcImportTextFile = True
Exit Function

ErrHandler:
MsgBox "Fehler in funcImportTextFile"

End Function

=========================================
Ende


Viele Grüße

Florian


1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: CSV Import mit VBA
29.05.2003 14:23:21
Florian Weiß

Hallo, ich musste dem Skript noch eine kleine Änderung geben und möchte noch eine Erklärung zum Funktionsaufruf schreiben.

Die Änderung betrifft die Datumskonvertierung, da Excel Beträge auch manchmal als Datum erkennt, was dann ungewollt zu Fehlern in der Betragsspalte führt

'Aktualisierter Code
=============================================================
Option Explicit

Function funcImportTextFile(strFullPath As String, deLimiter As String) As Boolean

On Error GoTo ErrHandler

Dim ar() As String
Dim fso As FileSystemObject
Dim ts As TextStream
Dim strActLine As String
Dim i&
Dim iRow&
Set fso = New FileSystemObject
Set ts = fso.OpenTextFile(strFullPath, ForReading)


Workbooks.Add 'Wird in eine neue Mappe importiert, kann geändert werden

'Erste Reihe
iRow = 1
'einlesen
Do Until ts.AtEndOfStream

strActLine = ts.ReadLine
ar() = Split(strActLine, deLimiter)

For i = 0 To UBound(ar) Step 1

'die Absicherung für das Datum --> And InStr(1, ar(i), ".")
If IsDate(ar(i)) And InStr(1, ar(i), ".") Then
Cells(iRow, i + 1) = CDate(ar(i))
ElseIf IsNumeric(ar(i)) Then
Cells(iRow, i + 1) = CDbl(ar(i))
ElseIf IsError(ar(i)) Then
Cells(iRow, i + 1) = "ERROR"
Else
Cells(iRow, i + 1) = ar(i)
End If
Next i

iRow = iRow + 1

Loop

funcImportTextFile = True
Exit Function

ErrHandler:
MsgBox "Fehler in funcImportTextFile"

End Function
==========================================================
Code Ende für Funktion

Nun zum Aufruf:
=========================================================
if not funcImportTextFile("C:\import.csv",";") then
.......
end if

=========================================================

Viele Grüße
Florian


Anzeige

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige