ich verzweifle mal wieder seit Stunden vor einem einzigen Befehl und weiß mittlerweile nicht mal mehr, was ich noch googeln soll.
Also ich habe ein Makro, was eigentlich einwandfrei funktioniert. Nun soll es abgeändert werden, weil sich unser Versuchsaufbau auch ändert. Statt nur einer Person auf einem Tabellenblatt habe ich nun zwei pro Tabellenblatt (beide haben unterschiedliche Zahlen) und das auf 30+ Tabellenblättern. Als Info vorneweg: ich habe ein großes Berechnungs-Tabellenblatt, auf dem hinterher alle Ergebnisse stehen sollen.
Ich habe mir gedacht, ich schreibe einfach einen Loop drumherum, der mir die Mittelwerte und Anzahlen der Zahlen der ersten Personen (11, 12, 14) immer in die geraden Zeilen schreibt. An sich funktioniert da auch schon gut, er lässt immer eine Zeile dazwischen frei. Allerdings werden in jede Zeile nur die Werte vom letzten Tabellenblatt geschrieben.
Vielleicht kann mir ja jemand helfen, den Knoten in meinem Kopf zu lösen.
Mein Code bisher:
Sub Mittelwerte_Hits()
Dim d As Integer, WS_Count As Integer
Dim e As Integer, f as Integer
WS_Count = ActiveWorkbook.Worksheets.Count
f = WS_Count * 2
For d = 2 To WS_Count
For e = 2 To f Step 2
With Worksheets(d)
If WorksheetFunction.CountIfs(Worksheets(d).Range("C6:C770"), "*posmein", Worksheets(d). _
Range("D6:D770"), "11") > 0 Then
Worksheets("Berechnung").Range("A" & e).Value = WorksheetFunction.AverageIfs(Worksheets( _
d).Range("F6:F770"), Worksheets(d).Range("C6:C770"), "*posmein", Worksheets(d).Range("D6:D770"), "11")
Worksheets("Berechnung").Range("B" & e).Value = WorksheetFunction.CountIfs(Worksheets(d) _
.Range("C6:C770"), "*posmein", Worksheets(d).Range("D6:D770"), "11")
End If
If WorksheetFunction.CountIfs(Worksheets(d).Range("C6:C770"), "*posmein", Worksheets(d). _
Range("D6:D770"), "13") > 0 Then
Worksheets("Berechnung").Range("C" & e).Value = WorksheetFunction.AverageIfs(Worksheets( _
d).Range("F6:F770"), Worksheets(d).Range("C6:C770"), "*posmein", Worksheets(d).Range("D6:D770"), "13")
Worksheets("Berechnung").Range("D" & e).Value = WorksheetFunction.CountIfs(Worksheets(d) _
.Range("C6:C770"), "*posmein", Worksheets(d).Range("D6:D770"), "13")
End If
If WorksheetFunction.CountIfs(Worksheets(d).Range("C6:C770"), "*posmein", Worksheets(d). _
Range("D6:D770"), "14") > 0 Then
Worksheets("Berechnung").Range("E" & e).Value = WorksheetFunction.AverageIfs(Worksheets( _
d).Range("F6:F770"), Worksheets(d).Range("C6:C770"), "*posmein", Worksheets(d).Range("D6:D770"), "14")
Worksheets("Berechnung").Range("F" & e).Value = WorksheetFunction.CountIfs(Worksheets(d) _
.Range("C6:C770"), "*posmein", Worksheets(d).Range("D6:D770"), "14")
End If
End With
Next e
Next d
End Sub