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

Letzte Zeile einer txt-Datei auslesen

Letzte Zeile einer txt-Datei auslesen
19.01.2018 08:59:14
Kay
Hallo Leute,
ich hoffe ihr könnt mir helfen. Ich habe folgendes Problem:
Ich habe eine txt Datei, welche sich stetig aktualisiert. Hierbei werden bei jeder Auslösung eines Programms Werte in die letzte Zeile der txt Datei gespeichert, die älteren Werte werden jedoch nicht gelöscht.
Nun möchte ich per Klick auf eine Schaltfläche in Excel die letzte Zeile der txt Datei auslesen und in bestimmte Zellen einfügen (z.B. B2 bis E2). Bei erneutem Klicken sollen die vorigen Daten aber nicht gelöscht werden, sondern unter den alten Werten eingefügt werden (B3 bis E3).
Die Werte in der txt Datei sind durch Semikola getrennt.
Ich habe leider keinerlei Grundwissen in VBA und hoffe, dass mir jmd behilflich sein kann.
MfG
Kay

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Letzte Zeile einer txt-Datei auslesen
19.01.2018 09:22:53
Peter(silie)
Hallo,
ändere im unten stehenden Code den Wert von path_, wenn sich deine Textdatei
nicht im Order Dokumente befindet und passe den Dateinamen am Ende an.
Ändere ggf. auch ws ab (z.B. Set ws = ThisWorkbook.Sheets("Tabellen Name"))
Ich empfehle dir, mit dem Debugger das ganze schrittweise einmal durch zu gehen, damit
du weißt was passiert.
Option Explicit
Public Sub ImportLastRow()
Dim lastLine As String, path_ As String
Dim ws As Worksheet, rng As Range
Dim lastRow As Long
path_ = Application.DefaultFilePath & "\test.txt"
lastLine = Textfile_Last_Line_Data(path_)
Set ws = ThisWorkbook.Sheets(1)
With ws
lastRow = .Cells(.Rows.Count, 2) + 1
Set rng = .Range(.Cells(lastRow, 2), .Cells(lastRow, 2))
rng.Resize(, UBound(Split(lastLine, ";")) + 1).Value = Split(lastLine, ";")
End With
End Sub
Private Function Textfile_Last_Line_Data(ByVal File_Path As String) As String
Dim data_ As String
Dim file_ As Long
file_ = FreeFile
Open File_Path For Input As #file_
While Not EOF(file_)
Line Input #file_, data_
Wend
Close #file_
Textfile_Last_Line_Data = data_
End Function

Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige