Anzeige
Archiv - Navigation
200to204
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
200to204
200to204
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

csv Dateien einlesen

csv Dateien einlesen
12.01.2003 00:12:48
pepe
Hallo,
kann mir jemand helfen?
Ich habe csv Dateien mit unterschiedlichen Trennzeichen die mittels eines Makros in ein excel97 sheet eingelesen und gleichzeitig formatiert werden sollen. Bei einigen Dateien gibt es eine Formatvorgabe der einzelnen Spalten bei den anderen sollen alle Felder als Text formatiert werden

So sehen die csv Dateien aus.
KUNR;ATNR;MINR;ARBEITSZEIT
10001;0001;312472;2
10001;0001;312472;1
oder
number;name;quantity;packinfo.name;price
"123";"Blau";"1.000";"Stk.";"5.08";"3,2,1,";"-2.000"
"145";"Lila";"1.000";"Stk.";"5.08";",";"0.000"
oder
1","111","Intern","1002","Bla,bla,bla"
"2","1042300","OBENOKLIN","Test","17.12.2001","2,5"
"3","111",Intern","1002"

Dies ist ein Teil meines Makros:
Open namecsv For Input As #1
Do Until EOF(1)
dblcounter = dblcounter + 1
Line Input #1, str
str = Application.Trim(str)
Do While InStr(str, ";") > 0
intcol = intcol + 1
Cells.NumberFormat = "@"
Cells(dblcounter, intcol).Value = Left(str, InStr(str, ";") - 2)
Cells(dblcounter, intcol).Value = Right(Cells(dblcounter, intcol).Value, Len(Cells(dblcounter, intcol).Value) - 1)
str = Right(str, Len(str) - InStr(str, ";"))
Loop
intcol = intcol + 1
intcol = 0
Loop
Close

Wenn wie im obigen Code die csv ein ; als Trennzeichen hat und jeder String in "" steht gibt es keine Probleme. Auch das mit dem Textformat für alle Zellen klappt. Habe ich aber ein Komma als Trennzeichen und ändere das natürlich in meinem Code dann trennt er z.B. auch "12,5", Wie krieg ich das hin?
Gibt es außerdem eine Möglichkeit einzelne Spalten vor dem einfügen der Daten zu formatieren.

Für Hilfe wäre ich sehr dankbar!

Gruß
Pepe

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: csv Dateien einlesen
13.01.2003 06:20:48
Hans W. Herber
Hallo,

es sollte geprüft werden, ob die Zeichen vor und nach dem Komma numerisch sind:
If Not IsNumeric(Mid(sTxt, InStr(sTxt, ",") - 1)) And _
Not IsNumeric(Mid(sTxt, InStr(sTxt, ",") + 1)) Then

Im Code formatierst Du in jedem Schleifendurchlauf alle Zellen als Text. Das kann so nicht gewollt sein. Formatiere vor der Schleife die einzelnen Spalten wie folgt:
Columns(1).NumberFormat = "0"
Columns(2).NumberFormat = "@"

hans

Re: csv Dateien einlesen
15.01.2003 11:37:21
pepe
Hallo Hans,

Vielen Dank für die Hilfe!!

Gruß
pepe


Anzeige

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige