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

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


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

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige