Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1060to1064
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-Datei in Excel einlesen

Text-Datei in Excel einlesen
21.03.2009 10:54:00
Jule07
Hallo,
ich brauche eure Hilfe?
Ich würde gern Werte aus einer Text-Datei, welche 2-reihig jeweils 50.000-60.000 Zeilen enthält, in eine bereits geöffnete Arbeitsmappe einfügen. Die 2 Reihen sind durch einen Tab getrennt.
Zudem kommt, dass ich gern die Text-Datei über ein Dialogfenster öffnen möchte, da der Namen der Text-Dateien und der Pfad immer wieder unterschiedlich sind.
Die eingelesenen Werte sollten, wenn möglich, erst ab der 15 Reihe angezeigt werden.
vielen Dank im Voraus

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Text-Datei in Excel einlesen
21.03.2009 11:36:20
Tino
Hallo,
persönlich bin ich kein so großer freund dieser Abfrage, aber versuche es mal hiermit.
Habe dies mit dem Makrorekorder aufgezeichnet und noch etwas modifiziert,
vielleicht reicht es ja so schon.
Erstellt unter xl2007, gehts auch unter xl2000?
Sub TextFileLesen()
Dim strFile As String
Dim iCalc As Integer


strFile = Application.GetOpenFilename("All TextFile (*.txt), *.txt")
    
If Not strFile = CStr(False) Then
   With Application
     
     iCalc = .Calculation
     .ScreenUpdating = False
     .EnableEvents = False
     .Calculation = xlCalculationManual
    
        Range("A15", Cells(Rows.Count, 2)).Value = ""
        With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & strFile _
            , Destination:=Range("$A$15"))
            .Name = "Text File"
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .RefreshStyle = xlOverwriteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .TextFilePromptOnRefresh = False
            .TextFilePlatform = 850
            .TextFileStartRow = 1
            .TextFileParseType = xlDelimited
            .TextFileTextQualifier = xlTextQualifierDoubleQuote
            .TextFileConsecutiveDelimiter = False
            .TextFileTabDelimiter = True
            .TextFileSemicolonDelimiter = False
            .TextFileCommaDelimiter = False
            .TextFileSpaceDelimiter = False
            .TextFileColumnDataTypes = Array(1, 1)
            .TextFileTrailingMinusNumbers = True
            .Refresh BackgroundQuery:=False
          
          Do Until ActiveSheet.QueryTables.Count = 0
            ActiveSheet.QueryTables(1).Delete
          Loop
        End With 'QueryTables 

     .Calculation = iCalc
     .ScreenUpdating = False
     .EnableEvents = False
    
    End With 'Application 
End If
End Sub


Gruß Tino

Anzeige
AW: Text-Datei in Excel einlesen
21.03.2009 12:50:38
Jule07
Hallo Tino,
bis zum auswählen der Text-Datei funktioniert alles super, leider zeigt er mir dann einen "Laufzeitfehler5" und kann die gewählte Datei nicht einlesen.
Beim Debuggen makiert er mir die Zeile
.TextFilePlatform = 850
hast eine Idee was es damit auf sich hat?
Gruß Jule
AW: Text-Datei in Excel einlesen
21.03.2009 13:02:33
Tino
Hallo,
kann nicht viel sein.
Zeichne Dir mal den Import der Textdatei mit dem Makrorekorder auf und vergleiche die Zeilen.
Gruß Tino
habe fertig :)
21.03.2009 13:17:16
Jule07
Hallo Tino,
habe es jetzt hinbekommen. Ich habe nur die 850 mit "xlMSDOS" ersetzt und es hat funktioniert.
viel Dank für deine Hilfe
schönes Wo-Ende
Gruß Jule
Anzeige
noch eine Variante
21.03.2009 13:30:59
Tino
Hallo,
habe Dir noch eine Variante aufgebaut, vielleicht ist diese sogar etwas schneller.
Sub TextFileLesen()
Dim strFile As String, sInhalt As String
Dim myAr1, myAr2()
Dim A As Long
Dim iCalc As Integer


strFile = Application.GetOpenFilename("All TextFile (*.txt), *.txt")
    
If Dir$(strFile, vbNormal) <> "" Then
   
 With Application

     iCalc = .Calculation
     .ScreenUpdating = False
     .EnableEvents = False
     .Calculation = xlCalculationManual
    
    Range("A15", Cells(Rows.Count, 2)).Value = ""

        F = FreeFile
        Open strFile For Binary As #F
        sInhalt = Space$(LOF(F))
        Get #F, , sInhalt
        Close #F
        
        myAr1 = Split(sInhalt, vbNewLine)
        Redim myAr2(Ubound(myAr1), 1)

      On Error Resume Next
        For A = Lbound(myAr1) To Ubound(myAr1)
         myAr2(A, 0) = Split(myAr1(A), vbTab)(0)
         myAr2(A, 1) = Split(myAr1(A), vbTab)(1)
        Next A
      On Error GoTo 0
        
        Range("A15").Resize(Ubound(myAr2, 1) + 1, 2) = myAr2

     .Calculation = iCalc
     .ScreenUpdating = False
     .EnableEvents = False
  End With 'Application 
End If
End Sub


Gruß Tino

Anzeige
Danke
21.03.2009 13:54:39
Jule07
Hi Tino,
diese Variante funktioniert tadellos.
Vielen Dank nochmals
Gruß Jule
wichtig, Kopierfehler
21.03.2009 13:40:52
Tino
Hallo,
am Ende vom Code habe ich vergessen wieder auf True zu stellen. Habe ich übersehen sorry.
Also am Ende müssen diese Zeilen wieder auf True gestellt werden!
.ScreenUpdating = True
.EnableEvents = True

Gruß Tino

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige