Ich erstelle eine Inventarliste mit Evaluate("SUMPRODUCT ...)
Pro Valor fülle ich die Spalten F - K aus
Bei J wird entweder ein Kurs als Betrag oder Prozentsatz eingetragen
Das habe ich mit Bereichsabfragen und if else endif gelöst
Nun gibt es einzelne Valorennummern (Abfrage aus Spalte AE) die anders zu behandeln sind.
Ich habe im Hinterkopf, dass ich eine solche Problemstellung mit CASE ... lösen kann. Nur ist mir nicht klar, wie ich dies in meinem Code integriere.
Kann mir da jemand auf die Sprünge helfen?
Danke, Peter
Sub xy()
With iSheet
Selection.AutoFilter Field:=1
zNr = 8
strEND = Sheets("Inventar").Cells(65536, 4).End(xlUp).Row 'ermittelt letzten Eintrag _
in Spalte D (Valor)
Do While zNr "" Then
Application.StatusBar = "Zeile " & zNr & " in Tabelle I N V E N T A R werden aktualisiert _
.Cells(zNr, 6) = Evaluate("SUMPRODUCT((Q_F=Link)*(Q_VW=AE" & zNr & ")*(Q_B))")
.Cells(zNr, 7) = Evaluate("SUMPRODUCT((Q_F=Link)*(Q_VW=AE" & zNr & ")*(Q_K))")
.Cells(zNr, 8) = Evaluate("SUMPRODUCT((Q_F=Link)*(Q_VW=$AE" & zNr & ")*(Q_V))")
.Cells(zNr, 9) = Evaluate("SUMPRODUCT((Q_F=Link)*(Q_VW=$AE" & zNr & ")*(Q_E))")
If zNr Ende_Obli Then 'Zahl für Prozentwerte muss durch 100 _
dividiert werden
.Cells(zNr, 10) = Evaluate("SUMPRODUCT((Q_F=Link)*(Q_VW=$AE" & zNr & ")*(Q_S))")
Else
.Cells(zNr, 10) = Evaluate("SUMPRODUCT((Q_F=Link)*(Q_VW=$AE" & zNr & ")*(Q_S)/100)")
End If
.Cells(zNr, 11) = Evaluate("SUMPRODUCT((Q_F=Link)*(Q_VW=$AE" & zNr & ")*(Q_W))")
Application.StatusBar = False
End If
zNr = zNr + 1
Loop
Selection.AutoFilter Field:=1, Criteria1:="="
End With
End Sub