Hallo,
ich möchte auf mehreren Tabellenblättern und mit der Index-Funktion identifizierte Zellwerte aufsummieren.
Die nachfolgende Function führt aber zu einem Fehlerwert. Kann jemand mir bitte helfen.
Viele Grüße Olaf
---------------------
-
Public Function SummeIndexTabellen(Tab1 As String, _
-
Tab2 As String, _
-
Summe_Bereich As Range, _
-
KritBereich1 As Range, _
-
Suchkriterium1 As String, _
-
KritBereich2 As Range, _
-
Suchkriterium2 As String) As Variant
-
-
-
Dim intI As Integer
-
Dim intJ As Integer
-
Dim intTab As Integer
-
Dim Summe As Double
-
-
If Val(Application.Version) < 12 Then
-
SummeIndexTabellen = "Nur ab xl2007 einsetzbar"
-
Exit Function
-
End If
-
-
If Suchkriterium1 = "" Or Suchkriterium2 = "" Then
-
SummeIndexTabellen = 0
-
Exit Function
-
End If
-
-
intI = Worksheets(Tab1).Index
-
intJ = Worksheets(Tab2).Index
-
-
For intTab = intI To intJ
-
Set KritBereich1 = ActiveWorkbook.Worksheets(intTab) _
-
.Range(KritBereich1.Address)
-
-
Set KritBereich2 = ActiveWorkbook.Worksheets(intTab) _
-
.Range(KritBereich2.Address)
-
-
Set Summe_Bereich = ActiveWorkbook.Worksheets(intTab) _
-
.Range(Summe_Bereich.Address)
-
With Application.WorksheetFunction
-
-
Summe = Summe + .IfError(.Index(Summe_Bereich, .Match(Suchkriterium1, KritBereich1, 0), .Match(Suchkriterium2, KritBereich2, 0)), 0)
-
-
End With
-
-
Next intTab
-
-
SummeIndexTabellen = Summe
-
-
-
End Function
|