Summewenns / VBA / mit größer-kleiner
28.12.2016 11:02:06
Tommy
bin gerade ein wenig mit einem Makro am verzweifeln und benötige eure Hilfe.
Folgender Sachverhalt:
Ich habe eine Datentabelle. In dieser stehen untereinander Bedarfe an Material mit Datum und Menge. Sieht Beispielhaft so aus: (4711 (ArtNr.), Butter (Art.Bez), 24.11.2016 (Bedarfstermin), 47 (Menge)). Darunter ungefähr 2000 Zeilen weiterer Zeitpunkt bezogener Bedarfe.
In einer zweiten Tabelle möchte ich nun sehen, welche Bedarfe sind Rückständig, welche benötige ich in den nächsten vier Wochen, in den nächsten 3 Monaten, im nächsten halben AJhr und heute in einem Jahr. Schlüssel ist die Artikelnummer, welche in den Bedarfe häufiger vorkommt in der Übersicht jedoch nur einmal.
Ich habe das versucht in einem Makro abzubilden und zwar wie folgt:
---------------------------------------
Sub BedarfeBedarfdeckung(zielreiter, zielspalte, zieldatum)
With Sheets("Bedarfe")
l_zeile_bedarfe = .Cells(Rows.Count, 1).End(xlUp).Row
Set artikel_bedarfe = .Range("C2:C" & l_zeile_bedarfe)
Set menge_bedarfe = .Range("E2:E" & l_zeile_bedarfe)
Set datum_rückstand = .Range("M2:M" & l_zeile_bedarfe)
End With
With Sheets(zielreiter)
For i = 5 To .Cells(Rows.Count, 1).End(xlUp).Row Step 1
artikelsuche = .Cells(i, 1)
.Cells(i, zielspalte) = Application.WorksheetFunction.SumProduct(menge_bedarfe, _
artikel_bedarfe, artikelsuche, datum_rückstand, zieldatum)
Next i
End With
Dieses SUB versuche ich wie folgt aufzurufen:
datum_bedarfe = Worksheets("Bedarfe").Cells(i, 7)
'---- Abgänge Rückstand ----
reiter_name = "Bedarfdeckung"
outputspalte = 12
bis_datum = "
Ich habe das Datum eines jeden Monates auf den Monatsersten gesetzt. Das reicht erstmal trotz Unschärfe aus.
So jetzt zu dem Problem:
- Dieses kleiner mag er wohl gar nicht. Wie kann ich das umschreiben, dass es funktioniert? Sprich bei Bedarf Rückständig alles was vor dem 01.12.2016 hätte beschafft werden müssen?
- Wie sieht das mit Zeiträumen aus? Angenommen ich möchte die Summe der Bedarfe vom 01.11.2016 bis einschließlich 31.12.2016?
Ich hoffe meine Erklärung war verständlich. Vielen Dank vorab.
Grüße
Tommy