Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1444to1448
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

SumIfs in VBA

SumIfs in VBA
09.09.2015 07:42:27
Bonduca
Hallo.
Ich möchte die Summe bilden, wenn mehrere Kriterien (Arg 3 und Arg 5) erfüllt sind.
Wenn die gleiche Zahl wie Arg3 in dem Bereich Arg2 gefunden wird und zugleich der Wert in Arg5 im Bereich Arg4 gefunden wird, dann soll die Summe des Bereichs Arg1 gebildet werden.
SumIfs (oder Summewenns) wird folgendermaßen auf der Office Seite erklärt:
Summewenns(Summenbereich, Kriterienbereich1, Kriterium1, Kriteriumbereich2, Kriterium2)
Leider habe ich irgendeinen Fehler in meinen Code
Set ws1 = Worksheets("Tabelle2")
Set ws2 = Worksheets("Tabelle1")
For i = 3 To 20000
varResult = Application.WorksheetFunction.SumIfs( _
Arg1:=ws1.Range(ws1.Cells(4, 8), ws1.Cells(50000, 8)), _
Arg2:=ws1.Range(ws1.Cells(4, 9), ws1.Cells(50000, 9)), _
Arg3:=ws2.Cells(i, 9), _
Arg4:=ws1.Range(ws1.Cells(4, 1), ws1.Cells(50000, 1)), _
Arg5:=ws2.Cells(i, 2)))
Next i
Kann jemand anhand des Codes sehen woran es liegen könnte?
Ich bekomme einen Syntaxfehler :(

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SumIfs in VBA
09.09.2015 08:10:26
fcs
Hallo Bonduca,
du hattest eine Klammer zu viel am Ende des Ausdrucks.
Bei 20000 Schleifendurchläufen wird Excel aber einige Zeit beschäftigt sein.
Gruß
Franz
Sub VieleSummeWenns()
'Variablendeklarationen
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim i As Long
Dim varResult As Double
Set ws1 = Worksheets("Tabelle2")
Set ws2 = Worksheets("Tabelle1")
For i = 3 To 10 '20000 zum Testen auf 10 Zeilen reduziert
varResult = Application.WorksheetFunction.SumIfs( _
Arg1:=ws1.Range(ws1.Cells(4, 8), ws1.Cells(50000, 8)), _
Arg2:=ws1.Range(ws1.Cells(4, 9), ws1.Cells(50000, 9)), _
Arg3:=ws2.Cells(i, 9), _
Arg4:=ws1.Range(ws1.Cells(4, 1), ws1.Cells(50000, 1)), _
Arg5:=ws2.Cells(i, 2))
ws2.Cells(i, 1) = varResult     'Testzeile
Next i
End Sub

Anzeige
AW: SumIfs in VBA
09.09.2015 08:17:51
Bonduca
Danke fcs.
Das Problem sitzt ja meistens doch vor dem Computer :D

AW: SumIfs in VBA
09.09.2015 08:16:20
Bonduca
Ah. Ich habs selbst gefunden.
Ich hab einfach bei Arg5 eine Klammer zu viel ;).
So einfach kanns manchmal sein.

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige