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

Excel CSV einlesen Tab getrennt wie ?

Excel CSV einlesen Tab getrennt wie ?
20.07.2004 17:38:49
Steffen
Hallo
ich versuche schon seit Stunden meine CSV Datei zu öffnen. Alle Zeichen sind Tabulator getrennt. Bei jedem Versuch die CSV im Excel zu öffnen schreibt mir Excel alles hintereinander :-( ich bekomme die Datei mit der Tabulatortrennung nicht eingelesen was kann ich tun ?
Danke und Gruß
Steffen

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel CSV einlesen Tab getrennt wie ?
Ramses
Hallo
Öffne die Datei und wähle den Befehl "Daten - Text in Spalten" und dem Assistenten folgen :-)
Gruss Rainer
AW: Excel CSV einlesen Tab getrennt wie ?
20.07.2004 17:49:41
Steffen
ok das hat geklappt :-) Danke
nun hab ich ein neues Problem jetzt formatiert mir Excel automatisch meine durch einen Punkt getrennten Preise in ein Datum um ? So steht das dann in der Zeile:07.07.2004 18:06:44.
Eigentlich sollte da einfach nur 0.74 oder irgend ein andere Preis stehen.
Versteht das jemand was das soll ?
AW: Excel CSV einlesen Tab getrennt wie ?
Ramses
Hallo
Das ist die automatische Formatierung.
Im deutschen EXCEL werden zahlen mit Punkt als Dezimaltrennzeichen als Datum interpretiert und nicht als Dezimalstelle.
Hier kommt nur Handarbeit zu tragen, bzw. "Bearbeiten - Suchen und Ersetzen"
markiere die gesamte Tabelle
Format - zellen - Zahlen - Standard
Dann Bearbeiten - Suchen und Ersetzen. Suche nach "." und ersetze durch ",".
Dann sollte es das gewesen sein.
Wenn du das häufiger hast, würde ich mal schauen, ob das Export-format der CSV-Datei nicht so definiert werden kann.
Gruss Rainer
Anzeige
AW: Excel CSV einlesen Tab getrennt wie ?
20.07.2004 18:06:42
Steffen
na mit suchen und ersetzen ist es nicht getan excel macht mir aus "1.28" ein Datum "01.01.2028" wenn ich dann wieder auf Formatieren drücke macht er nur mist und gibt mir meine 1.28 nicht mehr aus.
Die CSV Datei ist mein Export aus meiner MYSQL Tabelle und da muß alles Punkt getrennt sein sonnst geht das nicht mehr in SQL rein.
Kann man die Automatische Funktion nirgends abschalten im Excel ?
AW: Excel CSV einlesen Tab getrennt wie ?
Ramses
Hallo
Ohne Garantie, aber probier mal das Makro aus.

Sub Read_Extern_File_and_Replace_Signs()
'(C) Ramses
Dim i As Long, n As Integer
'Hilfsvariable für Anzahl Datensätze
Dim Text1 As String
'Variablen für den Array nötig
Dim txtlines As Long
'Für Office97 muss das Array TextArr als String definiert werden
'Entdeckt duch Gerd Z aus dem Herber Forum
Dim textArr As Variant
Dim ReadFile As String, tempStr As String
'Name der Datei in der die Semikola ersetzt werden sollen
ReadFile = "C:\Demo.csv"
Close #1
'1. Öffnen der Datei
'Den Namen und Pfad bitte anpassen
Open ReadFile For Input As #1
'Die anzahl ist nötig um die Grösse des Arrays zu deklarieren
'Zähler auf 0 setzen
txtlines = 0
Do While Not EOF(1)    ' Schleife bis Dateiende.
Input #1, Text1    ' Hilfsvariable zum einlesen verwenden
'Zähler hochzählen
txtlines = txtlines + 1
Loop
'Schliessen der Datei weil Dateiende erreicht wurde
Close #1
'Erneutes Öffnen um zum Dateianfang zu kommen
Open ReadFile For Input As #1    ' Datei zum Einlesen öffnen.
'Array neu auf die Anzahl der Linien initialisieren
ReDim textArr(txtlines)
'Einlesen der Dateien in das Array
For i = 1 To txtlines
'Zeile einlesen
Line Input #1, textArr(i)
'temporär übergeben
tempStr = textArr(i)
'Schleife um zu ersetzende Zeichen im String zu suchen
For n = 1 To Len(tempStr)
'zuerst wird das Komma gegen ein Semikolon ersetzt
If Mid(tempStr, n, 1) = "," Then
tempStr = Application.WorksheetFunction.Replace(tempStr, n, 1, ";")
End If
'... danach der Punkt gegen ein Komma
If Mid(tempStr, n, 1) = "." Then
tempStr = Application.WorksheetFunction.Replace(tempStr, n, 1, ",")
End If
Next n
'Der korrigierte String wird wieder in das array zurückgeschrieben
textArr(i) = tempStr
Next i
'File schliessen
Close #1
'File zum schreiben wieder öffnen
Open ReadFile For Output As #1
For i = 1 To txtlines
'Array an die jeweilige Zeile zurückschreiben
Print #1, textArr(i)
Next i
'Schliessen
Close #1
'Alle Zeichen ersetzt :-))
End Sub

Den Namen der Datei musst du halt mit Pfad anpassen.
Mal schauen ob EXCEL dann richtig importiert.
Gruss Rainer
Anzeige
AW: Excel CSV einlesen Tab getrennt wie ?
20.07.2004 20:16:40
Steffen
wie muß denn das File angepasst werden ? Ich bekomme die Meldung "Überlauf" :-(. Ich habe etwas über 100 Spalten und 1500 Zeilen das ist bestimmt zuviel für das Script oder ?
DAnke und Gruß
Steffen
AW: Excel CSV einlesen Tab getrennt wie ?
Ramses
Hallo
Welche Zeile wird markiert, wenn du auf "Debuggen" gehst ?
Gruss Rainer
AW: Excel CSV einlesen Tab getrennt wie ?
21.07.2004 17:53:16
Steffen
wenn ich auf debugen gehe markiert er gar nix. In dem Fehlerfenster steht "Laufzeitfehler 6" und darunter "Überlauf". Ich versuche mal nur eine Spalte zu importieren vieleicht geht es dann. Erst einmal noch vielen Dank für deine Mühe :-)
AW: Excel CSV einlesen Tab getrennt wie ?
Ramses
Hallo
ich weiss nicht wieviele Kommas bei dir in einer Zeile vorkommen,
unter Umständen liegt das an der Anweisung "Input".
Excel berechnet jedes Komma als eigenen Datensatz, wahrscheinlich reicht die
Dimensionierung der Variable nicht aus.
Ich hab das hier mal geändert.
Probier mal
Option Explicit

Sub Read_Extern_File_and_Replace_Signs()
'(C) Ramses
Dim i As Long, n As Integer
'Hilfsvariable für Anzahl Datensätze
Dim Text1 As String
'Variablen für den Array nötig
Dim txtlines As Long
'Für Office97 muss das Array TextArr als String definiert werden
'Entdeckt duch Gerd Z aus dem Herber Forum
Dim textArr As Variant
Dim ReadFile As String, tempStr As String
'Name der Datei in der die Zeichen
'Punkt und Komma ersetzt werden sollen
ReadFile = "C:\Demo.csv"
Close #1
'1. Öffnen der Datei
'Den Namen und Pfad bitte anpassen
Open ReadFile For Input As #1
'Die anzahl ist nötig um die Grösse des Arrays zu deklarieren
'Zähler auf 0 setzen
txtlines = 0
Do While Not EOF(1)    ' Schleife bis Dateiende.
Line Input #1, Text1    ' Hilfsvariable zum einlesen verwenden
'Zähler hochzählen
txtlines = txtlines + 1
Loop
'Schliessen der Datei weil Dateiende erreicht wurde
Close #1
'Erneutes Öffnen um zum Dateianfang zu kommen
Open ReadFile For Input As #1    ' Datei zum Einlesen öffnen.
'Array neu auf die Anzahl der Linien initialisieren
ReDim textArr(txtlines)
'Einlesen der Dateien in das Array
For i = 1 To txtlines
'Zeile einlesen
Line Input #1, textArr(i)
'temporär übergeben
tempStr = textArr(i)
'Schleife um zu ersetzende Zeichen im String zu suchen
For n = 1 To Len(tempStr)
'zuerst wird das Komma gegen ein Semikolon ersetzt
If Mid(tempStr, n, 1) = "," Then
tempStr = Application.WorksheetFunction.Replace(tempStr, n, 1, ";")
End If
'... danach der Punkt gegen ein Komma
If Mid(tempStr, n, 1) = "." Then
tempStr = Application.WorksheetFunction.Replace(tempStr, n, 1, ",")
End If
Next n
'Der korrigierte String wird wieder in das array zurückgeschrieben
textArr(i) = tempStr
Next i
'File schliessen
Close #1
'File zum schreiben wieder öffnen
Open ReadFile For Output As #1
For i = 1 To txtlines
'Array an die jeweilige Zeile zurückschreiben
Print #1, textArr(i)
Next i
'Schliessen
Close #1
'Alle Zeichen ersetzt :-))
End Sub

Gruss Rainer
Anzeige
AW: Excel CSV einlesen Tab getrennt wie ?
22.07.2004 22:43:13
Steffen
hab das gleiche Problem noch immer index fehler 6 und wenn ich meine Tabelle nur noch auf eine Spalte begrenze mit ca. 2000 Zeilen dann passiert gar nichts.
Ich gebe es nun auf ich versteh einfach nicht warum man dem Excel nicht sagen kann das es die automatische Formatierung einfach nicht machen soll.
Danke und Gruß
Steffen

250 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige