kann mir vielleicht jemand unten stehendem Code helfen?
Ich möchte aus einem Verzeichnis aus allen Dateien die Anzahl der "Pass" bzw. "Fail"
zählen. Diese stehen in den jeweiligen Datein im Reiter "General" in der Spalte B.
Was leider nicht funktioniert ist dass die beiden Variablen PassCount und FailCount immer 0 zurück liefern. Der Rest scheint soweit zu funktionieren.
Verwende ich CountIf falsch, oder habe ich sonst irgendwo einen Denkfehler?
Vielen Dank schon mal voraus.
MFG
Martin
--------------------------------------------------------------------------
Private Sub ReadReports_Click()
Dim shQuelle As Worksheet, shZiel As Worksheet
Dim FolderPath As String
Dim fso As Object
Dim fld As Object, f As Object
Dim r As Range
Dim Suche1 As String, Suche2 As String
Dim PassCount As Double, FailCount As Double
Set shZiel = ThisWorkbook.Sheets("Autotests")
shZiel.Range("A7:G50").ClearContents
Suche1 = "Pass"
Suche2 = "Fail"
FolderPath = shZiel.Cells(3, 3).Value
If FolderPath = "" Then Exit Sub
Set fso = CreateObject("Scripting.FileSystemObject")
Set fld = fso.GetFolder(FolderPath)
Set r = shZiel.Cells(6, 1)
Application.ScreenUpdating = False
If fld.Files.Count > 0 Then
On Error Resume Next
For Each f In fld.Files
Set r = r.Offset(1, 0)
r = f.Name
Set r = r.Offset(0, 2)
'Ermittlung Pass
Set shQuelle = GetObject(FolderPath & "\" & f.Name).Sheets("General")
PassCount = shQuelle.Application.WorksheetFunction.CountIf(Columns(2).Select, Suche1)
MsgBox (f.Name & " " & Suche1 & " " & PassCount)
r = PassCount
Set r = r.Offset(0, 1)
'Ermittlung Fail
FailCount = shQuelle.Application.WorksheetFunction.CountIf(Columns(2).Select, Suche2)
MsgBox (f.Name & " " & Suche2 & " " & FailCount)
r = FailCount
Set r = r.Offset(0, -3)
Application.CutCopyMode = False
shQuelle.Parent.Close SaveChanges:=False
Next
End If
Application.ScreenUpdating = True
End Sub