Hallo,
ich möchte über mehrere Tabellenblätter eine SummeWenns laufen lassen.
Mit 2 Kriterien habe ich eine funktionierende Lösung im Netz gefunden, die ich nun auf den Fall 1 Kriterien
kann mir jemand helfen, warum die VBA-Funktion beim Fall:
Suchkriterium1 = ""
einen Fehlerwert verursacht.
Viele Grüße
Olaf
_____________________
Public Function SummeWennSTabellen(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
SummeWennSTabellen = "Nur ab xl2007 einsetzbar"
Exit Function
End If
If Suchkriterium1 = "" Then
MsgBox (1)
SummeWennSTabellen = 0
Exit Function
End If
intI = Worksheets(Tab1).Index
intJ = Worksheets(Tab2).Index
If Suchkriterium2 = "" Then
MsgBox (2)
For intTab = intI To intJ
Set KritBereich1 = ActiveWorkbook.Worksheets(intTab) _
.Range(KritBereich1.Address)
Set Summe_Bereich = ActiveWorkbook.Worksheets(intTab) _
.Range(Summe_Bereich.Address)
With Application.WorksheetFunction
Summe = Summe + .IfError(.SumIfs _
(Summe_Bereich, KritBereich1, Suchkriterium1), 0)
End With
Next intTab
SummeWennSTabellen = Summe
Else
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(.SumIfs _
(Summe_Bereich, KritBereich1, Suchkriterium1, KritBereich2, Suchkriterium2), 0)
End With
Next intTab
SummeWennSTabellen = Summe
End If
End Function |