Option
Explicit
Public
Function
Mittel(NurPosZahlen
As
Boolean
,
ParamArray
AlleArgumente()
As
Variant
)
As
Double
Dim
Argument
As
Variant
Dim
Zelle
As
Range
Dim
Summe, Anzahl
As
Double
For
Each
Argument
In
AlleArgumente
If
NurPosZahlen =
True
Then
If
IsNumeric(Argument)
And
Argument >= 0
And
Argument <>
""
Then
Summe = Summe + Argument
Anzahl = Anzahl + 1
ElseIf
TypeName(Argument) =
"Range"
Then
For
Each
Zelle
In
Argument
If
IsNumeric(Zelle.Value)
And
Zelle.Value >= 0
And
Zelle.Value <>
""
Then
Summe = Summe + Zelle.Value
Anzahl = Anzahl + 1
End
If
Next
End
If
ElseIf
NurPosZahlen =
False
Then
If
IsNumeric(Argument)
And
Argument <>
""
Then
Summe = Summe + Argument
Anzahl = Anzahl + 1
ElseIf
TypeName(Argument) =
"Range"
Then
For
Each
Zelle
In
Argument
If
IsNumeric(Zelle.Value)
And
Zelle.Value <>
""
Then
Summe = Summe + Zelle.Value
Anzahl = Anzahl + 1
End
If
Next
End
If
End
If
Next
If
Anzahl > 0
Then
Mittel = Summe / Anzahl
Else
Mittel = 0
End
If
End
Function