Microsoft Excel

Herbers Excel/VBA-Archiv

CSV dateien lesen und schreiben

Betrifft: CSV dateien lesen und schreiben von: Tobias
Geschrieben am: 17.08.2004 08:30:52

Summa sind es 3 frage:

1. Wie kann ich CSV Dateien lesen?
2. schreiben?
3. wie bekommen ich eine Position aus dem zahlen und ";" Haufen?

Eigentlich würde sich das problem recht schnell lösen, makroaufzeichner an und los gehts. Aber ich habe festgestellt das das tool dann nicht auf allen versionen läuft und wollte deswegen nur mit dem VBA und einer oder mehrerer Textdateien arbeiten ohne das Excel??

Die meisten Forumseinträge die CSV angehen (die ich gefunden habe) beschränken sich auf CSV, VBA und Excel aber nicht nur VBA und CSV.

Weiß einer Rat?

mfg
Tobias

  


Betrifft: AW: CSV dateien lesen und schreiben von: ChrisL
Geschrieben am: 17.08.2004 15:30:41

Hi Tobias

CSV Dateien sind ganz gewöhnliche Text-Dateien. Wie man eine solche liest bzw. schreibt gibt es viele Beispiele in der Recherche.

Nachstehende Funktion funktioniert halbwegs d.h. scheitert bei der letzten Spalte, könnte man aber auch noch korrigieren (muss jetzt leider weg, also melden, sofern Bedarf)...

Function CSVSpezial(Datei As String, Zeile As Long, Spalte As Integer) As Variant
Dim iZeile As Long, iSpalte As Integer
Dim Text As String

Application.Volatile

iZeile = 0
Close #1
Open Datei For Input As #1

Do While Not EOF(1)
    iZeile = iZeile + 1
    Line Input #1, Text
    If iZeile = Zeile Then
        
        If Spalte <> 1 Then
            iSpalte = 1
            Do Until Spalte = iSpalte
                iSpalte = iSpalte + 1
                If InStr(Text, ";") = 0 Then Exit Do
                Text = Right(Text, Len(Text) - InStr(Text, ";"))
            Loop
        End If
        
        Text = Left(Text, InStr(Text, ";") - 1)
        CSVSpezial = Text
        Close #1
        Exit Function
    End If
Loop

Close #1
End Function




In eine Zelle gibts du ein
=CSVSpezial(Datei;Zeilennummer,Spaltennummer)
also z.B.
=csvspezial("C:\Test\test.csv";1;1)


Gruss
Chris


  


Betrifft: AW: CSV dateien lesen und schreiben von: Tobias
Geschrieben am: 17.08.2004 15:47:32

Danke chriss,

werd diesen Ansatz mal versuchen zu implementieren.

gruß
Tobias


  


Betrifft: AW: CSV dateien lesen und schreiben von: ChrisL
Geschrieben am: 17.08.2004 19:35:45

Hi Tobias

Hab schon bald an mir selber gezweifelt, aber so müsste es gehen...

Function CSVSpezial(Datei As String, Zeile As Long, Spalte As Integer) As Variant
Dim iZeile As Long, iSpalte As Integer, AnzahlSpalten As Integer
Dim Text As String

Application.Volatile

Close #1
Open Datei For Input As #1

Do While Not EOF(1)
    iZeile = iZeile + 1
    Line Input #1, Text
    If iZeile = Zeile Then
        
        AnzahlSpalten = Len(Text) - Len(WorksheetFunction.Substitute(Text, ";", "")) + 1
        If AnzahlSpalten < Spalte Then
            CSVSpezial = "Spalte nicht vorhanden"
            Close #1
            Exit Function
        End If
              
        If Spalte <> 1 Then
            For iSpalte = 2 To Spalte
                Text = Right(Text, Len(Text) - InStr(Text, ";"))
            Next iSpalte
        End If
        
        If InStr(Text, ";") <> 0 Then Text = Left(Text, InStr(Text, ";") - 1)
        CSVSpezial = Text
        Close #1
        Exit Function
    End If
Loop

CSVSpezial = "Zeile nicht vorhanden"
Close #1
End Function



Gruss
Chris


 

Beiträge aus den Excel-Beispielen zum Thema "CSV dateien lesen und schreiben"