Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: For Each Schleife zählt nicht hoch

For Each Schleife zählt nicht hoch
09.03.2021 15:59:38
Jonas
Hallo,
seit einigen Tagen beschäftige ich mit VBA. Ich habe mir etwas Wissen angelesen und folgenden Code zusammengebastelt. Er soll aus verschiedenen log files eine bestimmte Zeile herauslesen und diese in einer Exceltabelle untereinander wiedergeben, sodass die Werte summiert werden können.
Folgendes Problem: Wenn ich das Programm auf meine 3 Test Files loslasse, wird drei Mal die Gesamtdauer von File 1 wiedergegeben. Die Schleife zählt irgendwie nicht hoch. Leider fehlt mir das Verständnis, um den Fehler selber zu finden. Vielleicht kann mir ja jemand von euch helfen. Besten Dank im voraus.
LG Jonas
Sub GesamtdauerMehrererLogs()
Dim fs As Object
Dim fVerz As Object
Dim fDatei As Variant
Dim fdateien As Object
Dim file As String
Dim textline As String
Dim text As String
Dim posDauer As Long
Dim i As Integer
i = 1
Set fs = CreateObject("scripting.FileSystemObject")
Set fVerz = fs.GetFolder("C:Test")
Set fdateien = fVerz.Files
For Each fDatei In fdateien
If Right(fDatei, 4) = ".log" Then
file = fDatei.path
Open file For Input As #1
Do Until EOF(1)
Line Input #1, textline
text = text & textline
Loop
Close #1
posDauer = InStr(text, "Gesamtdauer (hh:mm:ss):")
Range("A" & i).Value = Mid(text, posDauer + 24, 8)
i = i + 1
End If
Next fDatei
End Sub


Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: For Each Schleife zählt nicht hoch
09.03.2021 16:05:49
Rudi
Hallo,
du musst Text leeren, sonst wird ja alles aus den folgenden Dateien angehängt.
....
If Right(fDatei, 4) = ".log" Then
text=""
file = fDatei.path
....

Gruß
Rudi

AW: For Each Schleife zählt nicht hoch
09.03.2021 16:28:56
Rudi

Sub GesamtdauerMehrererLogs()
Dim fs As Object
Dim fVerz As Object
Dim fDatei As Variant
Dim fdateien As Object
Dim textline As String
Dim posDauer As Long
Dim i As Integer
i = 1
Set fs = CreateObject("scripting.FileSystemObject")
Set fVerz = fs.GetFolder("C:\Test")
Set fdateien = fVerz.Files
For Each fDatei In fdateien
If Right(fDatei, 4) = ".log" Then
Open fDatei For Input As #1
Do Until EOF(1)
Line Input #1, textline
posline = InStr(textline, "Gesamtdauer (hh:mm:ss):")
If posline Then
Cells(i, 1) = Mid(textline, posDauer + 24, 8)
i = i + 1
Exit Do
End If
Loop
Close #1
End If
Next fDatei
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige