Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1736to1740
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

SUMIF mit mehreren Bedingungen

SUMIF mit mehreren Bedingungen
24.01.2020 16:24:51
Bo
Hallo,
ich möchte eine SUMMEWENN-Funktion mit mehreren Bedingungen, die ich im normalen Excel schon realisiert habe, nun in VBA umsetzen. Ich weiß man könnte einfach die Zellen runterziehen, aber ich benötige es in VBA:
In Schleife i in wsS
und in Schleife n in wsE
Bed.1: wsS.cells(i,3).value=wsE.cells(n,3).value
Bed.2: wsS.cells(i,4).value=wsE.cells(n,4).value
Bed.3: wsE.cells(n,7).value= "U"
Dann Addiere wsE.cells(n,10).value zu dem bestehenden Wert in wsS.cells(i,13).value
Nächster Eintrag in wsE
'=SUMMEWENNS(E!J:J;E!C:C;S!C3;E!D:D;S!D3;E!G:G;"U")
ich blicke da nicht zu 100% in der SUMIF-Syntax durch. Über Hilfe würde ich mich extrem freuen.
Sub SummeU()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
Dim wsS As Worksheet, wsE As Worksheet
Dim i As Integer, n As Integer
Set wsS = ThisWorkbook.Worksheets("S")
Set wsE = ThisWorkbook.Worksheets("E")
n = 3
i = 3
While wsS.Cells(i, 3).Value  ""
wsS.Cells(i, 13).Value = Application.WorksheetFunction.SumIfs(wsE.Cells(i, 10). _
Value, wsE.Cells(i, 3).Value, wsS.Cells(n, 3), wsE.Cells(i, 4), wsS.Cells(n, 4), wsE.Cells(i, 7), "U")
Wend
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.Calculation = xlAutomatic
Application.EnableEvents = True
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SUMIF mit mehreren Bedingungen
24.01.2020 16:41:00
Daniel
HI
naja, im Prinzip ganz einfach:
1. Parameter: die Spalte, die du summieren willst
2. Parameter: die Spalte für die die erste Bedingung
3. Parameter: die erste Bedingung
4. Parameter: die Spalte für die zweite Bedingung
5. Parameter: die zweite Bedingung
usw dann immer abwechselnd: Spalte, Bedingung
du machst in deinem VBA-Code den Fehler, dass du anstelle der Spalten immer nur Einzelwerte angibst, dh das ganze müsste so aussehen:
wsS.Cells(i, 13).Value = Application.WorksheetFunction.SumIfs(wsE.Columns(10), wsE.Columns(3), wsS.Cells(n, 3), wsE.Columns(4), wsS.Cells(n, 4).value, wsE.Columns(7), "U")
ein weiterer Fehler ist, dass du zwar eine Schleife mit While-Wend aufbaust, aber in der Schleife nichts veränderst.
damit schreibst du halt einfach nur sehr oft in die selbe Zelle den gleichen Wert.
dh du müsstest n und i noch innerhalb der Schleife irgendwie verändern (n = n + 1, i = i + 1)
wobei das vorgehen, das du hier vor hast, in VBA Unsinn ist.
es ist immer besser, mit der Formel zu arbeiten, weil man bei der Formel alle Zellen in einem Schritt bearbeiten kann, während du hier jede Zelle einzeln beschreibst, was in Excel viel Zeit braucht.
gruß Daniel
Anzeige
AW: SUMIF mit mehreren Bedingungen
27.01.2020 08:00:08
Bo
Hallo Daniel,
vielen Dank für die schnelle Hilfe. Ich versuche, mich nach und nach mit VBA vertraut zu machen, da greife ich gerne auf die schon bekannten Sachen zurück. Danke für das drauf aufmerksam machen, da muss ich nochmal etwas probieren.
Liebe Grüße

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige