Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
468to472
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
468to472
468to472
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

CSV dateien lesen und schreiben

CSV dateien lesen und schreiben
17.08.2004 08:30:52
Tobias
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

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: CSV dateien lesen und schreiben
ChrisL
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
Anzeige
AW: CSV dateien lesen und schreiben
Tobias
Danke chriss,
werd diesen Ansatz mal versuchen zu implementieren.
gruß
Tobias
AW: CSV dateien lesen und schreiben
ChrisL
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
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige