Microsoft Excel

Herbers Excel/VBA-Archiv

Vorhersage Auftragseingang


Betrifft: Vorhersage Auftragseingang von: HerrWeimann
Geschrieben am: 21.07.2017 08:40:21

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!?:-)

  

Betrifft: AW: Vorhersage Auftragseingang von: Werner
Geschrieben am: 21.07.2017 08:58:53

Hallo,

direkt nach der Codzeile mit der du deine Formel in die Zelle schreibst das:

ActiveCell.Value = ActiveCell.Value
Gruß Werner