Summenprodukt als VBA
25.10.2007 13:39:00
Verena
ich habe eine Sub geschrieben, die wie folgt aussieht:
Private Sub CommandButton1_Click()
Dim zeile As Integer
Dim z As Integer
Set wsh1 = Sheets("Tab1")
Set wsh3 = Sheets("Tab2")
Dim b As Integer
Application.ScreenUpdating = False
Rows("3:1000").ClearContents
Rows("3:1000").Select
Selection.Interior.ColorIndex = xlNone
Selection.Font.Bold = False
Selection.Font.Size = 9
zeile = 2
z = 2
b = 0
bereich = Array("A", "B", "C")
'Bereiche durchgehen:
For b = 0 To 2
Range("A" & z) = bereich(b)
Rows(z).Select
Selection.Font.Bold = True
Selection.Font.Size = 12
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
For zeile = 2 To 1000
'Handelt es sich um den gewünschten Bereich: Wenn Ja dann 1) sonst nächsten Bereich _
untersuchen
If wsh1.Range("E" & zeile) > (bereich(b) & "00000") And wsh1.Range("E" & zeile) '1) Neuer Kunde? Wenn ja dann weiter sonst nächste Zeile
If wsh1.Range("A" & zeile) wsh1.Range("A" & zeile - 1) Or ((Left((wsh1.Range("E" & zeile) _
), 1)) (Left((wsh1.Range("E" & zeile - 1)), 1))) Then
z = z + 1
wsh3.Range("A" & z) = wsh1.Range("A" & zeile)
wsh3.Range("B" & z) = wsh1.Range("B" & zeile)
'Berechnungen:
wsh3.Range("C" & z).Value = Application.WorksheetFunction.SumIf(wsh1.Columns(1), wsh3. _
Range("A" & z), wsh1.Columns(17))
'wsh3.Range("D" & z) = Application.WorksheetFunction.SumProduct((wsh1.Range(Cells(1, _
1), Cells(1, 1000)) = wsh3.Range("A" & z)) * (wsh1.Range(Cells(30, 1), Cells(30, 1000)) = wsh3.Range("D1")) * (wsh1.Range(Cells(17, 1), Cells(17, 1000))))
End If
End If
Next
zeile = 2
z = z + 4
Next
Application.ScreenUpdating = True
End Sub
Und die SumProduct-Formel (fett markiert) funktioniert nicht. Es ergibt immer einen Laufzeitfehler 1004 und ich weiß nicht, warum. Kann mir jmd weiterhelfen?
Lieber Gruß
Verena