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
18.09.2020 17:07:36 xlKing
NotSolved
21.09.2020 05:39:17 BYörn
NotSolved
Blau VBA Code für summewenn über mehrere sheets
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:
21.09.2020 19:58:53
Views:
874
Rating: Antwort:
  Ja
Thema:
VBA Code für summewenn über mehrere sheets

Hallo Byörn,

wenn ich dich richtig verstehe, beginnt dein zu summierender Bereich bei Sheet 5 (z.B. Kunde A) und geht bis inkl. zum letzten Sheet. Dafür kannst du in der Bestellliste die folgende Formel verwenden: =SummeWennAb(KundeA!B:B;A3;KundeA!E:E). Wichtig ist dabei, dass Bereich und Summe_Bereich auf dem gleichen Blatt liegen.

Den Code für diese Formel musst du natürlich erst noch in einem allgemeinen Modul hinterlegen:

Function SummeWennAb(Bereich As Range, Suchkriterien, Summe_Bereich As Range)
  
  Dim l As Long, u As Long, i As Long, s As Double, Mappe As Workbook
    
  Application.Volatile
    
  Set Mappe = Bereich.Parent.Parent
  
  l = Bereich.Parent.Index: u = Summe_Bereich.Parent.Index
  If l > u Then i = u: u = l: l = i
  If l = u Then u = Mappe.Sheets.Count
  
  If Mappe.Name <> Summe_Bereich.Parent.Parent.Name Then SummeWennAb = "#Mappe!": Exit Function
  
  For i = l To u
    s = s + Application.WorksheetFunction.SumIf(Mappe.Sheets(i).Range(Bereich.Address), _
            Suchkriterien, Mappe.Sheets(i).Range(Summe_Bereich.Address))
  Next i
  
  SummeWennAb = s
  
End Function

Die Formel ist exakt so aufgebaut wie eine normale SummewennFormel. nur dass nicht nur das angegebene Blatt, sondern alle Blätter bis zum letzten Blatt gerechnet werden.

Tipp: Wenn du doch mal nur von Kunde A bis Kunde C rechnen willst, dann gib in der Formel zwei verschiedene Blattnamen an. z.B. =SummeWennAb(KundeA!B:B;A3;KundeC!E:E)

Gruß Mr. K.

PS: Du solltest im Herber Forum auch einen Link hierher setzen, damit man dort auch Bescheid weiß. Coachyous Formellösung ist zwar auch genial, führt bei mir aber zu einem falschen Ergebnis, wenn der gleiche Artikel pro Blatt mehrmals vorkommt. 


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
18.09.2020 17:07:36 xlKing
NotSolved
21.09.2020 05:39:17 BYörn
NotSolved
Blau VBA Code für summewenn über mehrere sheets
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