VBA - Sumproduct
05.10.2013 17:46:39
Dip
Gerne würde ich eine Problemstellung basierend auf das Planungsfile (siehe Datei im Anhang) einbringen, in der Hoffnung, dass mir jemand weiterhelfen kann.
https://www.herber.de/bbs/user/87528.xlsx
Es geht darum, die WBS Elemente (z.B. 1.1.1.2.1) in Spalte A, Blatt "Version VBA" in die Spalte A, Blatt "csv" zu kopieren (ohne Duplikate!), und zwar nur die entsprechende ausgewählte Stufe (mit dem Filter würde ich die gewünschte Stufe wählen).
Im Blatt "csv", Zelle B2 würde ich das entsprechende Planungsjahr auswählen.
Die Monate auf Zeile 4 würden sich entsprechend anpassen (Funktion Monatsende()).
In der Zelle D5 dachte ich, ich würde die Lösung mittels der Funktion Summenprodukt lösen. Wie Ihr aber erkennt, kann Excel aufgrund von mangelnder Ressourcen bzw. grosser Datenrange/-kalkulation den Wert nicht berechnen.
Wäre die Umsetzung der Funktion Summenprodukt in VBA möglich?
Nachfolgend meine bescheidende Lösungmöglichkeit,
Sub test_sumproduct()
Worksheets("csv").Range("D5:O10").FormulaR1C1 = _
Evaluate("=SUMPRODUCT((R[-1]C=Version_VBA!R3C6:R3C303)*(RC[-3]=Version_VBA!C1)*(Version_VBA! _
_
_
C6:C303))")
End Sub
leider erhalte ich in der Zelle die Fehlermeldung #WERT!...
Nachdem der VBA Code die Summenprodukte kalkuliert hat, sollte man das Blatt "csv" als csv Datei abspeichern können, mit einem bestimmten Dateiname (als Konstante festgelegt) + das Jahr des gewählten Geschäftsjahr, z.B. "Planung 2013.csv"
Somit sollte es ein Steuerelement für das Kopieren der WBS Elemente sowie Summieren deren Werte und ein Steuerelement für die Erstellung der csv. Datei geben.
Das Festlegen von Konstanten im Blatt "Version_VBA" für
Zeile mit den Monaten
Zeile mit 1. Projekt
Eingabespalte 1. Monat
Wertespalte der WBS Elemente
und im Blatt "csv" für
Eingabespalte für WBS Elemente
Zeile mit den Monaten
1. Zeile mit WBS
Eingabespalte 1. Monat
wäre sehr benutzerfreundlich und elegant
Über irgendwelche Tipps/Hilfe würde ich mich sehr freuen!
Beste Grüsse
Dip