Thema Datum  Von Nutzer Rating
Antwort
Rot SummeWennSTabellen
13.05.2020 11:50:55 Olaf
NotSolved
13.05.2020 15:19:06 Gast87289
NotSolved

Ansicht des Beitrags:
Von:
Olaf
Datum:
13.05.2020 11:50:55
Views:
892
Rating: Antwort:
  Ja
Thema:
SummeWennSTabellen

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:

Zeilen 30-48: Suchkriterium2 = ""

einen Fehlerwert verursacht.

Viele Grüße Olaf

 

  1. Public Function SummeWennSTabellen(Tab1 As String, _
  2.                                   Tab2 As String, _
  3.                                     Summe_Bereich As Range, _
  4.                                     KritBereich1 As Range, _
  5.                                     Suchkriterium1 As String, _
  6.                                     KritBereich2 As Range, _
  7.                                     Suchkriterium2 As String) As Variant
  8.  
  9.  Dim intI                      As Integer
  10.  Dim intJ                      As Integer
  11.  Dim intTab                    As Integer
  12.  Dim Summe                     As Double
  13.  
  14.      If Val(Application.Version) < 12 Then
  15.          SummeWennSTabellen = "Nur ab xl2007 einsetzbar"
  16.          Exit Function
  17.      End If
  18.  
  19.      If Suchkriterium1 = "" Then
  20.                  
  21.          SummeWennSTabellen = 0
  22.          Exit Function
  23.  
  24.      End If
  25.  
  26.      intI = Worksheets(Tab1).Index
  27.      intJ = Worksheets(Tab2).Index
  28.  
  29.  
  30.     If Suchkriterium2 = "" Then
  31.              
  32.          For intTab = intI To intJ
  33.  
  34.              Set KritBereich1 = ActiveWorkbook.Worksheets(intTab) _
  35.                                 .Range(KritBereich1.Address)
  36.                 
  37.              Set Summe_Bereich = ActiveWorkbook.Worksheets(intTab) _
  38.                                  .Range(Summe_Bereich.Address)
  39.     
  40.              With Application.WorksheetFunction
  41.                 Summe = Summe + .IfError(.SumIfs _
  42.                         (Summe_Bereich, KritBereich1, Suchkriterium1), 0)
  43.              End With
  44.              
  45.          Next intTab
  46.          
  47.         SummeWennSTabellen = Summe
  48.          
  49.      Else
  50.      
  51.          For intTab = intI To intJ
  52.          
  53.              Set KritBereich1 = ActiveWorkbook.Worksheets(intTab) _
  54.                                 .Range(KritBereich1.Address)
  55.                 
  56.              Set KritBereich2 = ActiveWorkbook.Worksheets(intTab) _
  57.                                 .Range(KritBereich2.Address)
  58.                 
  59.              Set Summe_Bereich = ActiveWorkbook.Worksheets(intTab) _
  60.                                  .Range(Summe_Bereich.Address)
  61.     
  62.              With Application.WorksheetFunction
  63.                 Summe = Summe + .IfError(.SumIfs _
  64.                         (Summe_Bereich, KritBereich1, Suchkriterium1, KritBereich2, Suchkriterium2), 0)
  65.              End With
  66.              
  67.          Next intTab
  68.          
  69.         SummeWennSTabellen = Summe
  70.          
  71.      End If
  72.      
  73.  End Function
 

 


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
Rot SummeWennSTabellen
13.05.2020 11:50:55 Olaf
NotSolved
13.05.2020 15:19:06 Gast87289
NotSolved