Thema Datum  Von Nutzer Rating
Antwort
17.09.2020 12:59:03 BYörn
NotSolved
17.09.2020 13:07:56 Gast57278
NotSolved
17.09.2020 13:18:12 byoern
NotSolved
17.09.2020 14:23:13 Gast94702
NotSolved
18.09.2020 11:34:55 Gast85149
NotSolved
Blau VBA Code für summewenn über mehrere sheets
18.09.2020 17:07:36 xlKing
NotSolved
21.09.2020 05:39:17 BYörn
NotSolved
21.09.2020 19:58:53 xlKing
NotSolved
22.09.2020 05:39:53 Byörn
NotSolved
22.09.2020 19:05:14 xlKing
NotSolved
22.09.2020 19:23:20 xlKing
NotSolved
23.09.2020 05:37:28 Gast67239
Solved

Ansicht des Beitrags:
Von:
xlKing
Datum:
18.09.2020 17:07:36
Views:
757
Rating: Antwort:
  Ja
Thema:
VBA Code für summewenn über mehrere sheets

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.

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
17.09.2020 12:59:03 BYörn
NotSolved
17.09.2020 13:07:56 Gast57278
NotSolved
17.09.2020 13:18:12 byoern
NotSolved
17.09.2020 14:23:13 Gast94702
NotSolved
18.09.2020 11:34:55 Gast85149
NotSolved
Blau VBA Code für summewenn über mehrere sheets
18.09.2020 17:07:36 xlKing
NotSolved
21.09.2020 05:39:17 BYörn
NotSolved
21.09.2020 19:58:53 xlKing
NotSolved
22.09.2020 05:39:53 Byörn
NotSolved
22.09.2020 19:05:14 xlKing
NotSolved
22.09.2020 19:23:20 xlKing
NotSolved
23.09.2020 05:37:28 Gast67239
Solved