Anzeige
Archiv - Navigation
432to436
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
432to436
432to436
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Textdatei einlesen
27.05.2004 20:55:00
Ingrid
Hallo Leute,
habe da ein Problem mit dem Einlesen einer großen Textdatei mit mehr als 130000 Zeilen, bei der ich Eure Hilfe benötige.
Der Aufbau dieser Datei sieht folgender maßen aus:
Zeilenkennung (bestehend aus 3 Zahlen z.B. 925), Tabstopp und Text (bis zu 100 Zeichen)
Hierbei soll die Zeilenkennung in Spalte B und der Text in Spalte C eingelesen werden. Und bei mehr als 65536 Zeilen soll das einlesen im gleichen Arbeitsblatt in der Spalte D (Zeilenkennung) und E (Text) usw. fortgesetzt werden. Eingelesen werden sollten nur Zeilen mit einer Kennung größer gleich 200. In A1 sollte die Anzahl der eingelesenen Zeilen stehen.
Ich habe mit einigen Makros von der EXCEL CD experimentiert, bin jedoch kläglich gescheitert.
Für jegliche Hilfe wäre ich Dankbar.
Ingrid

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textdatei einlesen
27.05.2004 21:02:34
Nepumuk
Hallo Ingrid,
kannst du mal ein paar Zeilen der Textdatei in eine neue packen, zippen und auf den Server laden, damit ich was zum testen habe?
Gruß
Nepumuk
AW: Textdatei einlesen
27.05.2004 22:42:37
Nepumuk
Hallo Ingrid,
du musst nur noch den Pfad und Dateinamen anpassen. Wenn du einen Open-Dialog für die Dateien wünschst, dann bau ich ihn dir gerne ein.
Dein Programm:


Public Sub Ingrid()
    Dim strtext As String
    Dim intfile As Integer, intcolumn As Integer
    Dim lngrow As Long, lngtotal As Long
    Application.ScreenUpdating = False
    Reset
    intfile = FreeFile
    intcolumn = 2
    Open "D:\Eigene Dateien\Eigene Temp\Test.tmp" For Input Access Read Lock Read Write As intfile
    Do While Not EOF(intfile)
        Input #intfile, strtext
        If IsNumeric(Left$(strtext, 3)) Then
            If CInt(Left$(strtext, 3)) >= 200 Then
                lngrow = lngrow + 1
                If lngrow > 65536 Then
                    lngrow = 1
                    intcolumn = intcolumn + 2
                End If
                lngtotal = lngtotal + 1
                Cells(lngrow, intcolumn) = CInt(Left$(strtext, 3))
                Cells(lngrow, intcolumn + 1) = Trim$(Mid$(strtext, 5))
            End If
        End If
    Loop
    Close #intfile
    Cells(1, 1) = lngtotal
    Application.ScreenUpdating = True
End Sub


Gruß
Nepumuk
Anzeige
AW: Textdatei einlesen
28.05.2004 04:45:29
Ingrid
Hallo Nepumuk,
mit einem Open-Dialog wäre nicht schlecht brauche die Datei dann nicht immer zu kopieren und umzubenennen. Ansonsten hab schon ausprobiert, läuft prima.
Noch mal vielen Dank für Deine Hilfe
Ingrid
AW: Textdatei einlesen
28.05.2004 05:23:01
Nepumuk
Hallo Ingrid,
dann so:


Public Sub Ingrid()
    Dim strtext As String
    Dim intfile As Integer, intcolumn As Integer
    Dim lngrow As Long, lngtotal As Long
    Dim varfilename As Variant
    varfilename = Application.GetOpenFilename("Temp Files (*.tmp), *.tmp, Text Files (*.txt), *.txt")
    If VarType(varfilename) <> vbBoolean And varfilename <> False Then
        Application.ScreenUpdating = False
        Reset
        intfile = FreeFile
        intcolumn = 2
        Open varfilename For Input Access Read Lock Read Write As intfile
        Do While Not EOF(intfile)
            Input #intfile, strtext
            If IsNumeric(Left$(strtext, 3)) Then
                If CInt(Left$(strtext, 3)) >= 200 Then
                    lngrow = lngrow + 1
                    If lngrow > 65536 Then
                        lngrow = 1
                        intcolumn = intcolumn + 2
                    End If
                    lngtotal = lngtotal + 1
                    Cells(lngrow, intcolumn) = CInt(Left$(strtext, 3))
                    Cells(lngrow, intcolumn + 1) = Trim$(Mid$(strtext, 5))
                End If
            End If
        Loop
        Close #intfile
        Cells(1, 1) = lngtotal
        Application.ScreenUpdating = True
    End If
End Sub


Gruß
Nepumuk
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige