Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
688to692
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
688to692
688to692
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Daten aus geschlossenen txt-Dateien einlesen
01.11.2005 15:35:28
Hofer
Ich möchte Messwerte in eine Excel-Datei einlesen und auswerten. Die Daten liegen als txt-Datei vor. Die Bezüge erfolgen mittels INDIREKT Funktion.
Problem: Die Daten lassen sich nur importieren, wenn die txt-Datei in Excel geöffnet (importiert) wurde. Mit SQL.Request kann ich auf geschlossene Exceldaten zugreifen - geht so etwas auch für txt-Dateien?
Nebenfrage: Wenn ich mit SQL.Request Daten aus Exceldateien einlese werden nur numerische Daten übernommen, jedoch kein Text. Gibt es einen Weg, auch den Text zu bekommen?
Gruß
MHofer

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus geschlossenen txt-Dateien einlesen
01.11.2005 19:11:47
Hilbman
Hallo Hofer,
Man kann eine txt-Datei wie folgt einlesen:

Private Sub CommandButton1_Click()
Dim Dateiname As String, DateiNr As String, Temp As String
Dateiname = "D:\aaaaa\Test.txt"
DateiNr = FreeFile
Open Dateiname For Input As DateiNr
MsgBox Input(LOF(DateiNr), DateiNr)
Close DateiNr
End Sub

In der Test.txt steht z.B. "Dies ist ein test"
Man kann diesen text auch anstatt in einer Msgbox auszugeben, in einer Variablen wie z.B. Temp speichern.
Bei Texten in Tabellenstruktur muß dann natürlich anhand der Trennzeichen wie z.B.
";" und LF CR der Text entsprechend zerlegt werden und in die entsprechenden Zellen
geschrieben werden.
Gruß Hilbman
Anzeige
AW: Daten aus geschlossenen txt-Dateien einlesen
02.11.2005 18:06:06
Hofer
Vielen Dank.
Mit der Hilfe habe ich es geschafft, dass er alle Zeilen aus der Datei einließt.
Jetzt sind dies z.B. Zahlen wie 0,435436 .... - diese werden aber als Text eingefügt. M.E. weil Excel intern mit Punkt statt Komma arbeitet. Wie kann ich im klarmachen, dass das das lokale Zahlenformat ist?
Gruß
MHofer
AW: Daten aus geschlossenen txt-Dateien einlesen
03.11.2005 06:45:19
Hilbman
Hallo Hofer,
Man kann mit einer Stringoperation den Punkt durch Komma austauschen:
Bei Office 2000/ 2003 geht :
Dim Zahlstring as string
Zahlstring="12.34567"
activesheet.cells(1,1)=Cdbl(replace(Zahlstring,".",","))
Bei Office 97 gibt es zwar auch eine Replacefunktion, die aber nur auf ein Rangeobjekt funktioniert.
Ein Weg der immer auch unter Office 97 geht ist folgender:
Dim i As Long, Zahlenwert As String, Zahlstring As String
Zahlstring = "12.345678"
For i = 1 To Len(Cells(1, 1))
If Mid(Zahlstring, i, 1) = "." Then
Zahlenwert = Zahlenwert & ","
Else
Zahlenwert = Zahlenwert & Mid(Zahlstring, i, 1)
End If
Next
ActiveSheet.Cells(1, 1) = CDbl(Zahlenwert)
Der string "Zahlstring" ist der aus dem gesamttext extrahierter Zahlenwert als string.
Gruß Hilbman
Anzeige
AW: Daten aus geschlossenen txt-Dateien einlesen
03.11.2005 15:50:10
Hofer
Erst einmal vielen Dank für beide Antworten.
Habe noch einen weiteren Weg gefunden. Statt Range("XY").Value den String temp zu übergeben nutze ich Range("XY").Formulalocal = temp.
Ich bräuchte noch eine kurze Erklärung, wie ich das mit mehreren Spalten mache LF CR etc.
Gruß
MHofer
AW: Daten aus geschlossenen txt-Dateien einlesen
03.11.2005 18:55:13
Hilbman
Hallo Hofer,
Folgendem Code zeigt eine Möglichkeit an:

Private Sub CommandButton1_Click()
Dim Zeilen
Dim Spalten
Dim Dateiname As String, DateiNr As String, Temp As String
Dim i As Long, j As Long
Dateiname = "D:\Projekte Excel\Test\ZeSpa1.txt"
DateiNr = FreeFile
Open Dateiname For Input As DateiNr
Temp = Input(LOF(DateiNr), DateiNr)
Close DateiNr
Zeilen = Split(Temp, vbCrLf, , vbTextCompare)
For i = 0 To UBound(Zeilen) - 1
Spalten = Split(Zeilen(i), ";", , vbTextCompare)
For j = 0 To UBound(Spalten) - 1
ActiveSheet.Cells(i + 1, j + 1) = Spalten(j)
Next
Next
End Sub

In Spalten(j) steht dann der Zellwert. Auf diesen Text mußt du dann die spezielle Formatbehandlung durchführen.
Gruß Hilbman
Anzeige
AW: Daten aus geschlossenen txt-Dateien einlesen
04.11.2005 14:42:13
Hofer
Super - genau das habe ich gesucht.
Hinweis für weitere Leser: um statt ";" den Tabulator als Trennzeichen zu nehmen muss vbTab eingesetzt werden.
Gruß
MHofer

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige