Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: txt datei einlesen

txt datei einlesen
24.06.2005 20:53:54
Frank
Hallo,
ich habe eine txt datei in folgendem format:
23.45,46.51
24.53,47.64
usw.
die Aufgabe ist, diese Werte einzulesen und anhand einer vorherigen Abfrage nur die 2, 3 oder 4te Zeile in eine Arbeitsmappe zu schreiben.
Mein Code sieht bisher folgendermaßen aus:
Dim Datei, Zeilen As String
Dim n, z As Integer
Dim x, y As Single
Datei = "C:\Temp\Messwerte.txt"
n = FreeFile
Open Datei For Input As #n
z = 0
While Not EOF(n)
Input #n, x, y
z = z + 1
Cells(2 + z, 2) = x
Cells(2 + z, 3) = y
Wend
Close #z
Wie kann ich das machen?
Als VBA Anfänger komme ich da nicht weiter.
Frank
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: txt datei einlesen
24.06.2005 23:59:47
MichaV
Hallo
für Deinen speziellen Fall könnte der Code so aussehen:

Option Explicit
Private Sub CommandButton1_Click()
Dim z As Integer
Dim zz As Integer
Dim f As Integer
Dim t As String
z = Application.InputBox("Welche Zeile einlesen?", "1,2,3 oder 4", "1", , , , , 1)
If z = 0 Then Exit Sub
zz = 0
f = FreeFile
Open "C:\Temp\Messwerte.txt" For Input As #f
While Not EOF(f) And Not zz = z
zz = zz + 1
Line Input #f, t
Wend
Close f
If Not zz = z Then MsgBox "Datei zu kurz": Exit Sub
Cells(2 + z, 2) = Left(t, InStr(t, ",") - 1)
Cells(3 + z, 2) = Right(t, Len(t) - InStr(t, ","))
End Sub

Gruß- Micha
PS: Rückmeldung wäre nett.
Anzeige
AW: txt datei einlesen
25.06.2005 10:22:12
Frank
Hallo Micha,
schon mal vielen Dank für deine Hilfe. Ich habe allerdings die Aufgabestellung nicht korrekt beschrieben.
Ich soll aus der genannten Datei wahlweise 0,1,2, 3, oder 4 Zeilen auslassen.
So sollte es für das Auslassen von 2 Zeilen ablaufen:
Zeile in Datei Zeile in Excel
1 nach Excel 1
2 auslassen
3 auslassen
4 nach Excel 2
5 auslassen
6 auslassen
7 nach Excel 3
Gruss Frank
Anzeige
AW: txt datei einlesen
25.06.2005 21:23:04
MichaV
Hallo Frank,
dann so:

Option Explicit
Private Sub CommandButton1_Click()
Dim vEingabe
Dim iAuslassen As Integer
Dim iZeile As Integer
Dim iDat As Integer
Dim i As Integer
Dim sDatei As String
Dim sZeilen() As String
vEingabe = Application.InputBox("Wieviel Zeilen auslassen?", "0,1,2,3 oder 4", "1", , , , , 1)
If VarType(vEingabe) = vbBoolean Then Exit Sub 'Abbrechen
iAuslassen = CInt(vEingabe)
'If iAuslassen > 4 Then Exit Sub
iZeile = 1
iDat = FreeFile
Open "d:\micha\excel\daten.txt" For Binary As #iDat
sDatei = Space(LOF(iDat))
Get #iDat, , sDatei
Close iDat
sZeilen = Split(sDatei, vbCrLf)
For i = 0 To UBound(sZeilen)
If i Mod (iAuslassen + 1) = 0 Then
Cells(iZeile, 1) = Left(sZeilen(i), InStr(sZeilen(i), ",") - 1)
Cells(iZeile, 2) = Right(sZeilen(i), Len(sZeilen(i)) - InStr(sZeilen(i), ","))
iZeile = iZeile + 1
End If
Next i
End Sub

Gruß- Micha
PS: Rückmeldung wäre nett.
Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige