Function
SumIfOverSheets(Tables
As
String
, Bereich
As
Range, Suchkriterien
As
Variant
, Summe_Bereich
As
Range)
Dim
ltable
As
String
, utable
As
String
, p
As
Integer
, i
As
Integer
, s
As
Double
p = InStr(1, Tables,
":"
)
If
p = 0
Then
SumIfOverSheets =
"#Tabelle!"
Exit
Function
End
If
ltable = Left(Tables, p - 1)
utable = Right(Tables, Len(Tables) - p)
If
Not
SheetExists(ltable)
Or
Not
SheetExists(utable)
Then
SumIfOverSheets =
"#Tabelle!"
Exit
Function
End
If
For
i = Worksheets(ltable).Index
To
Worksheets(utable).Index
s = s + Application.WorksheetFunction.SumIf(Worksheets(i).Range(Bereich.Address), Suchkriterien, Worksheets(i).Range(Summe_Bereich.Address))
Next
i
SumIfOverSheets = s
End
Function
Private
Function
SheetExists(n
As
String
)
As
Boolean
On
Error
Resume
Next
SheetExists = Sheets(n).Name <>
""
End
Function