Inhalt einer .txt (Zeilenweise) in Excel (Spaltenweise) importieren
Guten Tag liebe administrator.de - Gemeinde,
ich würde mich freuen, wenn Ihr mir bei folgendem Problem weiterhelfen könntet. Im Internet habe ich bisher nichts dazu finden können oder ich habe nicht explizit nach meinem Problem gesucht.
Da ich Systeme habe, welche nicht über das Netzwerk angebunden werden jedoch regelmäßig eine Datei auf diese kopiert werden muss,
gebe ich den Usern einen USB-Stick an die Hand, wo sie mit CPAU für diesen Kopiervorgang Admin-Rechte bekommen.
Damit ich auswerten kann ob die Datei beim letzten Mal erfolgreich kopiert wurde (ist dies nicht der Fall wird eine Error-Datei erzeugt) und der User überhaupt den ihm vorgeschriebenen Vorgang durchgeführt hat,
lasse ich das Batch-Skript auch gleich eine log.txt mit folgendem Inhalt erstellen.
Da ein User für mehrere Systeme verantwortlich ist, füllt sich meine log.txt zeilenweise immer weiter.
Um nun eine bessere Auswertung sowie Übersicht erstellen zu können, habe ich die log.txt in Excel importiert.
Daten > Aus Text...
Das funktioniert soweit auch ganz gut, aber die Daten werden wie aus der log.txt eingefügt. Sprich Zeile für Zeile.
Ich würde mich aber freuen, wenn ich diesen Import Spalte für Spalte bis maximal 4 Werte, danach neue Zeile und dan wieder maximal 4 Werte hinbekommen würde und genau da ist der Knackpunkt.
Ich wäre euch über jede Hilfe dankbar, die mir dabei helfen kann dieses Problem zu lösen.
Ich freue mich schon auf eure zahlreichen Denkanstöße
Gruß
Basti
ich würde mich freuen, wenn Ihr mir bei folgendem Problem weiterhelfen könntet. Im Internet habe ich bisher nichts dazu finden können oder ich habe nicht explizit nach meinem Problem gesucht.
Da ich Systeme habe, welche nicht über das Netzwerk angebunden werden jedoch regelmäßig eine Datei auf diese kopiert werden muss,
gebe ich den Usern einen USB-Stick an die Hand, wo sie mit CPAU für diesen Kopiervorgang Admin-Rechte bekommen.
Damit ich auswerten kann ob die Datei beim letzten Mal erfolgreich kopiert wurde (ist dies nicht der Fall wird eine Error-Datei erzeugt) und der User überhaupt den ihm vorgeschriebenen Vorgang durchgeführt hat,
lasse ich das Batch-Skript auch gleich eine log.txt mit folgendem Inhalt erstellen.
ComputernameUhrzeitDatumggf. "Kopiervorgang letztes Mal fehlgeschlagen."
Da ein User für mehrere Systeme verantwortlich ist, füllt sich meine log.txt zeilenweise immer weiter.
Um nun eine bessere Auswertung sowie Übersicht erstellen zu können, habe ich die log.txt in Excel importiert.
Daten > Aus Text...
Das funktioniert soweit auch ganz gut, aber die Daten werden wie aus der log.txt eingefügt. Sprich Zeile für Zeile.
A | |
1 | Computername |
2 | Uhrzeit |
3 | Datum |
4 | ggf. "Kopiervorgang letztes Mal fehlgeschlagen" |
Ich würde mich aber freuen, wenn ich diesen Import Spalte für Spalte bis maximal 4 Werte, danach neue Zeile und dan wieder maximal 4 Werte hinbekommen würde und genau da ist der Knackpunkt.
A | B | C | D | |
1 | Computername | Uhrzeit | Datum | Bemerkungen |
2 | Computer1 | 15:00 | 05.08.2015 | |
3 | Computer2 | 16:00 | 05.08.2015 | Kopiervorgang letztes Mal fehlgeschlagen. |
Ich wäre euch über jede Hilfe dankbar, die mir dabei helfen kann dieses Problem zu lösen.
Ich freue mich schon auf eure zahlreichen Denkanstöße
Gruß
Basti
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 279296
Url: https://administrator.de/forum/inhalt-einer-txt-zeilenweise-in-excel-spaltenweise-importieren-279296.html
Ausgedruckt am: 21.05.2025 um 20:05 Uhr
2 Kommentare
Neuester Kommentar

Moin Basti, Welcome to the Forum ...
Gruß jodel32
Sub ImportReports()
Dim rngCurrent As Range, arrContent as Variant
'Dateipfad angeben
Const FILE = "C:\report.txt"
'Objekte
Set fso = CreateObject("Scripting.FileSystemObject")
'Textdatei in Zeilen-Array laden
arrContent = Split(fso.OpentextFile(FILE, 1).ReadAll(), vbNewLine)
With ActiveSheet
'Überschriften setzen (kann weg gelassen werden wenn sie manuell erstellt werden)
With .Range("A1:D1")
.Value = Array("Computername", "Uhrzeit", "Datum", "Bemerkungen")
.Font.Bold = True
End With
'Erste leere Anfangszelle ermitteln
Set rngCurrent = .Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
'Array der importierten Zeilen durchlaufen und in neue Zeilen schreiben
For i = 0 To UBound(arrContent) - 1 Step 4
rngCurrent.Resize(1, 4).Value = Array(arrContent(i), arrContent(i + 1), arrContent(i + 2), arrContent(i + 3))
Set rngCurrent = rngCurrent.Offset(1, 0)
Next
'Spaltenformate anpassen --------
'Spalte A und D als Text formatieren
.Range("A:A,D:D").NumberFormat = "@"
'Spalte B Uhrzeitformat
.Range("B:B").NumberFormat = "hh:mm"
'Spalte C Datumsformat
.Range("C:C").NumberFormat = "dd.MM.yyyy"
'Spaltenbreiten anpassen
.Range("A:D").EntireColumn.AutoFit
End With
Set fso = Nothing
End Sub