Function
SummewennIndirekt(Bereich
As
String
, Suchkriterien, Summe_Bereich
As
String
, AbSheet
As
Long
,
Optional
BisSheet
As
Long
)
Dim
l
As
Long
, u
As
Long
, i
As
Long
, s
As
Double
, Mappe
As
Workbook
Application.Volatile
If
IsRange(Bereich)
And
IsRange(Summe_Bereich)
Then
Set
Mappe = Application.Caller.Parent.Parent
l = AbSheet
If
u = 0
Then
u = Mappe.Sheets.Count
Else
u = BisSheet
If
l > Mappe.Sheets.Count
Then
Exit
Function
For
i = l
To
u
s = s + Application.WorksheetFunction.SumIf(Mappe.Sheets(i).Range(Bereich), _
Suchkriterien, Mappe.Sheets(i).Range(Summe_Bereich))
Next
i
SummewennIndirekt = s
Else
SummewennIndirekt =
"#Bereich!"
End
If
End
Function
Function
IsRange(r
As
String
)
As
Boolean
On
Error
Resume
Next
IsRange = Range(r).Address <>
""
End
Function