Hallo Byörn,
du hast immer noch keinen Link zu deinem Thread im Herber Forum gesetzt. Deswegen weiß hier niemand, wie weit du dort bereits fortgeschritten bist. Unabhängig von diesem Fortschritt könnte ich dir folgende erste Idee anbieten: (Anpassungen nach deinen Wünschen möglich)
Füge in ein allgemeines Modul deiner Arbeitsmappe folgenden Code ein:
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
In Zelle F3 deiner Bestellliste schreibst du dann z.B. folgende Formel:
=SumifoverSheets("Tabelle1:Tabelle3";Tabelle1!B12:B32;A3;Tabelle1!E12:E32)
Dann einfach runterziehen. Der Aufbau ist genau wie bei Summewenn, nur dass du beim ersten Parameter die Tabellennamen von:bis als String angeben musst. Das ist natürlich nur ein Vorschlag, wie du die Formel genau aufbauen willst, kannst du dir größtenteils aussuchen. Den Code kann man dann entsprechend umschreiben. Nur eine Bezugsangabe wie Tabelle1:Tabelle3!B12:B32 funktioniert leider nicht, da dies zu einem Fehler führt.
Ist denn die Formel immer in derselben Mappe oder soll sie auf verschiedene Excel-Dateien Anwendung finden? Liegt das Blatt Bestellliste immer an letzter Stelle? Man könnte in den Code oder die Formel auch eine Bedingung einbauen wie: Rechne von Blatt 1 bis zum vorletzen Blatt bzw. bis zum letzten Blatt vor Bestellliste. Dann kannst du dir die Angabe von Tabellennamen sparen, da diese ja umbenannt werden könnten, und die Formel dann nicht mehr funktionieren würde.
Wie gesagt, mach einfach mal eine Vorschlag, wie DU die Formel am liebsten aufbauen würdest.
Gruß Mr. K.
|