Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1704to1708
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

Laufzeitfehler 62 Textdatei

Laufzeitfehler 62 Textdatei
27.07.2019 19:23:51
sigi
Hallo,
Die Daten aus einer Excel-Tabelle in eine Textdatei funktioniert.
Jedoch beim auslesen kommt der Laufzeitfehler 62
Was stimmt hier nicht?
Danke!
Gruß
Sigi
Option Explicit
Public sFile As String, sDatei As String
Public iRow As Integer, iCol As Integer, iFile As Integer
Sub txt_erstellen()
Dim sTxt As String
sFile = ThisWorkbook.Path & "\Test\" & "Muster.txt"
iFile = FreeFile
Open sFile For Output As iFile
For iRow = 1 To ActiveSheet.Cells(Rows.Count, 12).End(xlUp).Row
For iCol = 9 To 16
sTxt = sTxt & ActiveSheet.Cells(iRow, iCol).Value & ";"
Next iCol
sTxt = Left(sTxt, Len(sTxt) - 1)
Print #iFile, sTxt
sTxt = ""
Next iRow
Close iFile
End Sub

Sub txt_oeffnen()
Dim sI As String, sJ As String, sK As String, sL As String, sM As String
Dim sN As String, sO As String, sP As String
sDatei = "Muster.txt"
sFile = ThisWorkbook.Path & "\Test\" & sDatei
If Dir(sFile) = "" Then
MsgBox "Die Datei wurde nicht gefunden!"
Exit Sub
End If
iFile = FreeFile
Open sFile For Input As iFile
Do Until EOF(iFile)
iRow = iRow + 1
Input #iFile, sI, sJ, sK, sL, sM, sN, sO, sP
ActiveSheet.Cells(iRow, 9).Value = sI
ActiveSheet.Cells(iRow, 10).Value = sJ
ActiveSheet.Cells(iRow, 11).Value = sK
ActiveSheet.Cells(iRow, 12).Value = sL
ActiveSheet.Cells(iRow, 13).Value = sM
ActiveSheet.Cells(iRow, 14).Value = sN
ActiveSheet.Cells(iRow, 15).Value = sO
ActiveSheet.Cells(iRow, 16).Value = sP
Loop
Close iFile
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 62 Textdatei
27.07.2019 19:54:21
Matthias
Moin!
Das Problem ist, dass du beim input immer 8 Zeilen aus der Datei einliest.
https://docs.microsoft.com/de-de/office/vba/language/reference/user-interface-help/inputstatement
Wenn deine Textdatei aber nicht genau Vielfache von 8 hat, läuftst du in einen Fehler. Die Zeile mit EOF prüft ja nur zu diesem Zeitpunkt, ob du am Ende bist. Danach liest du die 8 Zeilen ein.
Mache da besser eine Schleife. Wenn du 8 eingelesen hast, gehst du eine Zeile weiter.
VG
AW: Laufzeitfehler 62 Textdatei
27.07.2019 20:00:03
Matthias
War grad zu schnell.
Hier mal ein angepasster Code:
Sub txt_oeffnen()
Dim sI As String, sJ As String, sK As String, sL As String, sM As String
Dim sN As String, sO As String, sP As String
sDatei = "Muster.txt"
sFile = ThisWorkbook.Path & sDatei
If Dir(sFile) = "" Then
MsgBox "Die Datei wurde nicht gefunden!"
Exit Sub
End If
iFile = FreeFile
irow = 1
spalte = 9
Open sFile For Input As iFile
Do Until EOF(iFile)
Line Input #iFile, inhalt
ActiveSheet.Cells(irow, spalte).Value = inhalt
spalte = spalte + 1
If spalte = 16 Then
spalte = 9
irow = irow + 1
End If
Loop
Close iFile
End Sub

VG
Anzeige
AW: Laufzeitfehler 62 Textdatei
27.07.2019 20:13:32
sigi
Hallo Matthias,
vielen Dank für Deine Unterstützung!
Leider komme ich mit Deinem Code nicht zurecht.
Als was muß "Inhalt" deklarieren?, "Variant?"
Jetzt wird alles in eine Zelle geschrieben.
Die Textdatei wird nicht getrennt!
Danke!
Gruß
Sigi
AW: Laufzeitfehler 62 Textdatei
27.07.2019 20:20:16
sigi
Hallo Matthias,
habe Deinen Code etwas ungeschrieben und nun funktioniert es.
Danke!
Gruß
Sigi
Open sFile For Input As #1
Do Until EOF(1)
Line Input #1, sTxt
Do While InStr(sTxt, ";")
ActiveSheet.Cells(iRow, iCol).Value = Left(sTxt, InStr(sTxt, ";") - 1)
sTxt = Right(sTxt, Len(sTxt) - InStr(sTxt, ";"))
iCol = iCol + 1
Loop
ActiveSheet.Cells(iRow, iCol).Value = sTxt
iRow = iRow + 1
iCol = 9
Loop
Close
Anzeige
AW: Laufzeitfehler 62 Textdatei
27.07.2019 20:36:35
Nepumuk
Hallo Sigi,
das geht auch einfacher:
Public Sub Test()
    Dim sFile As String, sTxt As String
    Dim iRow As Long
    iRow = 1
    sFile = "H:\Test.txt"
    Open sFile For Input As #1
    Do Until EOF(1)
        Line Input #1, sTxt
        Cells(iRow, 1).Resize(1, 8).Value = Split(sTxt, ";")
        iRow = iRow + 1
    Loop
    Close #1
End Sub

Gruß
Nepumuk
Anzeige
AW: Laufzeitfehler 62 Textdatei
27.07.2019 20:39:59
Matthias
MOin!
Falls du auf einige Schleifen verzichten willst und die lässtigen Stringoperationen, kannst du es acuh so machen. Nachteil ist aber, dass die Zahlen als Text eingetragen werden. Deswegen ist da noch zwei Zeilen drin, die DAten nochmal einträgt.
Sub txt_oeffnen()
Dim sI As String, sJ As String, sK As String, sL As String, sM As String
Dim sN As String, sO As String, sP As String
sDatei = "Muster.txt"
sFile = ThisWorkbook.Path & sDatei
If Dir(sFile) = "" Then
MsgBox "Die Datei wurde nicht gefunden!"
Exit Sub
End If
iFile = FreeFile
iRow = 1
icol = 9
Open sFile For Input As #1
Do Until EOF(1)
Line Input #1, sTxt
temp = Split(sTxt, ";")
ActiveSheet.Cells(iRow, icol).Resize(, UBound(temp) + 1).Value = temp
ActiveSheet.Cells(iRow, icol).Resize(, UBound(temp) + 1).NumberFormat = "General"
ActiveSheet.Cells(iRow, icol).Resize(, UBound(temp) + 1).Value = ActiveSheet.Cells(iRow, icol). _
Resize(, UBound(temp) + 1).Value
iRow = iRow + 1
Loop
Close
End Sub

VG
Anzeige
AW: Laufzeitfehler 62 Textdatei
27.07.2019 20:42:59
sigi
Vielen Dank Matthias und Nepumuk,
beides funktioniert.
Gruß
Sigi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige