Hi zusammen,
ich versuche seit längerem einen Code zu verfassen, der in einer Excel-Warenwirtschaft einen Verbrauch von Material innerhalb eines bestimmten Zeitraums ausrechnet und in einer UserForm darstellt.
Der Gesamverbrauch eines Artikels wird mit der SUMIFS-Funktion gut zusammengefasst. Jetzt möchte ich jedoch den Verbrauch innerhalb eines Zeitraums angeben lassen, indem ein Slider-Element die Wochenrückblicke steuert. D.h. wenn der Slider auf Value 1 bewegt wird, soll die Summe des Verbrauches der letzten 7 Tage angezeigt werden. Bei Slider.Value = 2 soll dann 14 Tage angezeigt werden, usw.
Der Code sieht so aus:
Private Sub Slider1_Change()
On Error GoTo ErrHand
'Daten deklarieren
Dim LastRow As Long
Dim Col1 As Range, Col4 As Range, Col5 As Range
Dim EndDate As Date
Dim StartDate As Date
Dim Scanartikel As Long
Dim Verbrauch As Variant
'Variablen definieren
Scanartikel = Right(Artikel, 4)
StartDate = Format(Now - (Slider1.Value * 7), "dd.mm.yyyy")
EndDate = Format(Now, "dd.mm.yyyy")
LastRow = Range("A" & Rows.Count).End(xlUp).Row
Set Col1 = Sheets("Warenbewegung").Range("A3:A" & LastRow)
Set Col4 = Sheets("Warenbewegung").Range("D3:D" & LastRow)
Set Col5 = Sheets("Warenbewegung").Range("E3:E" & LastRow)
'Summen-Formel
Verbrauch = Application.WorksheetFunction.SumIfs(Col5, Col4, ">=" & StartDate, Col4, "<=" & EndDate, Col1, Scanartikel, Col5, "<1")
'Ergebnis eintragen
Paletten.Value = VerbrauchOH / -1
Label9.Visible = True
Verbrauchsgrenze.text = EndDate & " - " & Date
'release the range objects
Set Col1 = Nothing
Set Col4 = Nothing
Set Col5 = Nothing
ErrHand:
If Err.Number <> 0 Then
msg = "Error # " & Str(Err.Number) & " was generated by " _
& Err.Source & Chr(13) & "Error Line: " & Erl & Chr(13) & Err.Description
43: MsgBox msg, , "Error", Err.HelpFile, Err.HelpContext
Exit Sub
End If
End Sub
Die SUMIFS-Funktion scheitert daran, dass der Zeitraum nicht übertragen wird. Die Daten stehen in einem Excel Sheet folgendermaßen:
Artikelnr. |
Artikel |
Verpackung |
Buchungsdatum |
Buchungsmenge |
|
|
|
|
|
|
|
|
|
|
Kann mir irgendjemand sagen, woran es liegen könnte, dass der Zeitraum nicht ausgelesen werden kann? Alles andere funktioniert wunderbar. Kann es sein, dass die SUMIFS-Funktion keine komplexen Definitionen von einem "einfachen" Datum erkennen kann? Habe das Datum ja in Verbindung mit dem Slider-Wert gesetzt.
Danke schonmal im Voraus!
|