SumIfs in VBA

Bild

Betrifft: SumIfs in VBA
von: Bonduca
Geschrieben am: 09.09.2015 07:42:27

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 :(

Bild

Betrifft: AW: SumIfs in VBA
von: fcs
Geschrieben am: 09.09.2015 08:10:26
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


Bild

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

Bild

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

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Textteile je nach Farbe in andere Zelle kopieren"