Zählen Sie auf allen Blättern Summen in verschiedenen Bereichen
Thiil
Ich versuche 3 Summen zu machen. Genehmigt, abgelehnt und wartet
Jedes Blatt in der Arbeitsmappe enthält diese Informationen in denselben Spalten.
Was ich bisher versucht habe, ist unten, mit verschiedenen Verbesserungen, aber es scheint falsch zu zählen und ich kann nicht verstehen, wie ich es richtig mache.
Sub test()
Dim WS As Worksheet, rng1 As Range, rng2 As Range, rng3 As Range, T1 As Integer, T2 As Integer, T3 As Integer
Dim Lastrow As Long
On Error Resume Next
Set rng1 = Range(("B1"), Range("B" & Rows.Count).End(xlUp))
Set rng2 = Range(("C1"), Range("C" & Rows.Count).End(xlUp))
Set rng3 = Range(("D1"), Range("D" & Rows.Count).End(xlUp))
T1 = 0
T2 = 0
T3 = 0
For Each WS In ActiveWorkbook.Worksheets
With WS
For Each cell In rng1
If cell.Value = "1" Then T1 = T1 + 1
Next
For Each cell In rng2
If Cells.Value = "1" Then T2 = T2 + 1
Next
For Each cell In rng3
If Cells.Value = "1" Then T3 = T3 + 1
Next
End With
Next
MsgBox "Godkendte: " & T1 & "--- Afviste: " & T2 & "--- Afventer: " & T3
End Sub
CallumDA
Ihr Code kann ein wenig vereinfacht werden. Wenn Sie am Ende Variablennamen mit Zahlen schreiben, ist es wahrscheinlich besser, ein Array zu verwenden
Sub test()
Dim ws As Worksheet
Dim v(1 To 3) As Variant
For Each ws In ActiveWorkbook.Worksheets
With ws
v(1) = v(1) + Application.WorksheetFunction.CountIf(.Range(.Range("B1"), .Range("B" & .Rows.Count).End(xlUp)), 1)
v(2) = v(2) + Application.WorksheetFunction.CountIf(.Range(.Range("C1"), .Range("C" & .Rows.Count).End(xlUp)), 1)
v(3) = v(3) + Application.WorksheetFunction.CountIf(.Range(.Range("D1"), .Range("D" & .Rows.Count).End(xlUp)), 1)
End With
Next
MsgBox "Godkendte: " & v(1) & "--- Afviste: " & v(2) & "--- Afventer: " & v(3)
End Sub