Hallo,
als Vertriebsmitarbeiter muss ich regelmässig eine Vorhersage abgeben, was wohl bis Jahresende noch alles an Aufträgen rein kommt. Diese Vorhersage würde ich gerne mehr oder weniger automatisiert per VBA erstellen können.
VBA soll dazu einige Spalten per AutoFilter filtern, dann eine Produktspalte finden, die dort eingetragenen Summen (das Teilergebnis) per Summenprodukt mit einer Wahrscheinlichkeit multiplizieren und das Ergebnis dieser Rechnung in eine Zelle schreiben. Das Ganze natürlich für diverse Produkte und in jedem Quartal neu.
Obwohl ich nicht wirklich Ahnung habe, funktioniert mein Code bereits bis zur Berechnung eines Teilergebnisses:
Sub Vorhersage gewichtet
' Q1
'Produkt 1
Dim Datum1 As Date, Datum2 As Date
Datum1 = "31.12.2016"
Datum2 = "01.04.2017"
ThisWorkbook.Worksheets("Tabelle1").Activate
ActiveSheet.UsedRange.AutoFilter
ActiveSheet.UsedRange.AutoFilter Field:=3, Criteria1:=Array("Branche1", "Branche2", "Branche3"), _
Operator:=xlFilterValues
ActiveSheet.UsedRange.AutoFilter Field:=4, Criteria1:=Array("Peter", "Tim", "Thomas"), _
Operator:=xlFilterValues
ActiveSheet.UsedRange.AutoFilter Field:=5, Criteria1:=">" & CDbl(Datum1), Operator:=xlAnd, Criteria2:="<" & CDbl(Datum2)
ActiveSheet.UsedRange.AutoFilter Field:=7, Criteria1:=Array("Direct Sales"), _
Operator:=xlFilterValues
ActiveSheet.UsedRange.AutoFilter Field:=8, Criteria1:=Array("Bestandskunden"), _
Operator:=xlFilterValues
ActiveSheet.UsedRange.AutoFilter Field:=10, Criteria1:=Array("1", "5", "10", "15", "20", "25", "30", "35", "40", "45", "50", "55", "60", "65", "70", "75", "80", "85", "90")
Set finden = Range("A20:BQ20").Find(what:="Produkt1")
Cells(finden.Row, finden.Column).Activate
Range("E3").Select
ActiveCell.FormulaLocal = _
"=SUMMENPRODUKT(TEILERGEBNIS(9;INDIREKT(""L""&ZEILE($21:$500)))*($J$21:$J$500/100))"
End Sub
Problem: Es wird zwar korrekt gerechnet, ich schreibe in E3 aber letztlich nur die Formel, nicht das tatsächliche Ergebnis. Sobald ich die Filter wieder entferne, rechnet die Formel natürlich auch wieder was ganz anderes aus....die Zahlen in Field:=10 stehen übrigens für Wahrscheinlichkeiten.
Vermutlich kein großes Problem für jemanden, der sich auskennt!?:-)
|