Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1536to1540
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
Inhaltsverzeichnis

Text-File import

Text-File import
03.02.2017 16:45:35
Thomas
Servus,
ich Lade über eine UserForm eine Txt-Datei in mein Excel-Sheet. Dabei kann ich über
.TextFileStartRow die erste Zeile auswählen die importiert werden soll. Gibt es eine Möglichkeit, wie man auch eine letzte Zeile festlegen kann? D.H. ich dann nicht die Text-Datei ab der StartRow komplett importiere sondern nur bis zu einer bestimmten Zeile?
Grüße,
Thomas

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

Betreff
Datum
Anwender
Anzeige
AW: Text-File import
03.02.2017 20:10:39
JoWE
Hallo Thomas,
ich glaube das geht mit dieser Methode nicht; ich kann aber natürlich irren.
Einlesen via "Line Input #1, TextLine" möchtest Du nicht anwenden?
Dabei kann der der Import von Zeilen mit Hilfe einer Zählvariable limitiert werden.
Lasse die Frage mal offen, vllt. hat ja jemand eine fertige Lösung.
Gruß
Jochen
AW: Text-File import
04.02.2017 08:48:22
Tino
Hallo,
habe hier mal was zusammengebaut.
Kannst mal testen!
Du kannst angeben
  • Pfad -> String

  • von Zeile -> Long

  • bis Zeile -> Long

  • welcher Zeilenumbruch verwendet werden soll -> Optional String

  • ob Rückgabe als String oder Array -> Optional Enum Aufzählung

  • ob Array transponiert werden soll,
    um diese zBsp. direkt in Zellen zu schreiben. -> Optional Boolean

  • Modul Modul2
    Option Explicit 

    Enum enuGetTyp
    GetString
    GetArray
    End Enum

    Function ReadFile(sPath$, ByVal FromLine&, ByVal ToLine&, Optional LineBreak$ = vbCr, _
    Optional GetTyp As enuGetTyp = enuGetTyp.GetString, Optional booTranspose As Boolean = False)
    Dim sInhalt$
    Dim F%
    Dim varTemp
    Dim n&

    If Dir(sPath, vbNormal) = "" Then Exit Function
    If FromLine > ToLine Then Exit Function

    FromLine = FromLine - 1
    If FromLine < 0 Then FromLine = 0
    ToLine = ToLine - 1
    If ToLine < 0 Then ToLine = 0

    F = FreeFile
    Open sPath For Binary As #F
    sInhalt = Space$(LOF(F))
    Get #F, , sInhalt
    Close

    varTemp = Split(sInhalt, LineBreak)
    sInhalt = ""
    If Ubound(varTemp) < FromLine Then Exit Function
    If Ubound(varTemp) < ToLine Then ToLine = Ubound(varTemp)
    For n = FromLine To ToLine - 1
    ReadFile = ReadFile & varTemp(n) & LineBreak
    Next
    ReadFile = ReadFile & varTemp(ToLine)
    If GetTyp = GetString Then
    Exit Function
    Else
    varTemp = Split(ReadFile, LineBreak)
    If booTranspose Then varTemp = ArrayTranspose(varTemp)
    ReadFile = varTemp
    End If
    End Function

    Private Function ArrayTranspose(varArray)
    Dim NewArray()
    Dim nRowCount&, nColCount&, nRow&, nCol&

    If Not IsArray(varArray) Then
    Exit Function
    End If

    On Error Resume Next

    Redim NewArray( _
    1 To Ubound(varArray, 2) - Lbound(varArray, 2) + 1, _
    1 To Ubound(varArray) - Lbound(varArray) + 1)

    If Err.Number = 0 Then
    For nRow = Lbound(varArray) To Ubound(varArray)
    nColCount = nColCount + 1
    For nCol = Lbound(varArray, 2) To Ubound(varArray, 2)
    nRowCount = nRowCount + 1
    NewArray(nRowCount, nColCount) = varArray(nRow, nCol)
    Next nCol
    nRowCount = 0
    Next nRow
    Else
    Redim NewArray( _
    1 To Ubound(varArray) - Lbound(varArray) + 1, 1 To 1)

    For nCol = Lbound(varArray) To Ubound(varArray)
    nRowCount = nRowCount + 1
    NewArray(nRowCount, 1) = varArray(nCol)
    Next nCol
    End If

    ArrayTranspose = NewArray
    End Function
    Modul Modul1
    Option Explicit 

    Sub Beipsiel()
    Dim sPfad$
    Dim varText

    'Pfad zur Textdatei
    sPfad = Application.GetOpenFilename("Files (*.*), *.*")
    If sPfad = CStr(False) Then Exit Sub

    'Pfad
    'Von Zeile
    'Bis Zeile
    'Zeilenumbruch Zeichen
    'Rückgabe String Or Array
    'Transponiere Array
    varText = ReadFile(sPfad, 15, 25, vbCr, GetString)

    Debug.Print varText
    End Sub
    Gruß Tino
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige