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
21.09.2020 19:58:53 xlKing
NotSolved
22.09.2020 05:39:53 Byörn
NotSolved
Blau VBA Code für summewenn über mehrere sheets
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:
22.09.2020 19:05:14
Views:
759
Rating: Antwort:
  Ja
Thema:
VBA Code für summewenn über mehrere sheets

Hallo BYörn

das ist eine wichtige Info. Wenn du die Sheets immer per VBA löschst und neu erstellst, warum berechnest du das dann nicht gleich im gleichen Atemzug und schreibst die Werte per VBA hart in die Zielzellen?

Nun denn, alle guten Dinge sind drei. Da ich deinen Code nicht kenne gebe ich die Formellösung noch nicht auf. Probiers mal wie folgt.

Code in Modul1:

Function SummewennIndirekt(Bereich As String, Suchkriterien, Summe_Bereich As String, AbSheet As Long, Optional BisSheet As Long)

  Dim l As Long, u As Long, i As Long, s As Double, Mappe As Workbook
  
  Application.Volatile
  
  If IsRange(Bereich) And IsRange(Summe_Bereich) Then
  
    Set Mappe = Application.Caller.Parent.Parent
    l = AbSheet
    If u = 0 Then u = Mappe.Sheets.Count Else u = BisSheet
    If l > Mappe.Sheets.Count Then Exit Function
  
    For i = l To u
      s = s + Application.WorksheetFunction.SumIf(Mappe.Sheets(i).Range(Bereich), _
              Suchkriterien, Mappe.Sheets(i).Range(Summe_Bereich))
    Next i
  
    SummewennIndirekt = s
  Else
    SummewennIndirekt = "#Bereich!"
  End If
  
End Function
Function IsRange(r As String) As Boolean
  On Error Resume Next
  IsRange = Range(r).Address <> ""
End Function

Formel in Bestellliste: =SummewennIndirekt("B12:B1000";A3;"E12:E1000";5)

Auch hier ist der Aufbau ähnlich der Summewennformel. Nur dass im ersten und dritten Parameter der Bereich als Text angegeben werden muss. Der vierte Parameter ist die Blattposition wo die Suche beginnt (also Kunde A), wenn du den fünften Parameter weglässt wird die Suche bis zum letzten Blatt durchgeführt. Gib einen fünften Parameter an, und die Suche endet auf dieser Blattposition. Blattnamen sind unerheblich.

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
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
Blau VBA Code für summewenn über mehrere sheets
22.09.2020 19:05:14 xlKing
NotSolved
22.09.2020 19:23:20 xlKing
NotSolved
23.09.2020 05:37:28 Gast67239
Solved