Hallo zusammen,
ich versuche seit längerem eine Tabelle aufzustellen, die als Materialwirtschaft dienen soll. Zu jedem Produkt soll in einer Spalte der Verbrauch der letzten 7 Tage gezeigt werden. Die Informationen sollen aus einer fortlaufenden Liste gezogen werden, die die Warenbewegungen erfasst.
Das ganze sieht ungefähr so aus:
Tabelle 1 - Hier wird der Wareneingang und -ausgang gescannt. (Artnr. wird in Spalte A in der ersten freien Zelle eingetragen)
Artikelnummer |
Artikel |
Lieferant |
Buchungsdatum |
Menge Pal |
6000 |
Testartikel1 |
Muster GmbH |
05.05.2021 |
50 |
6000 |
Testartikel1 |
Muster GmbH |
05.05.2021 |
18 |
6001 |
Testartikel2 |
Muster2 GmbH |
05.05.2021 |
19 |
|
|
|
|
|
Tabelle 2 - Hier ist eine Bestandsübersicht, die sich die den aktuellen Lagerbestand durch die Eingabe in Tabelle 1 anpasst.
Artikelnummer |
Artikel |
Beschreibung |
Stk./Pal. |
Lagerbestand |
7-Tage Verbrauch (Durchschnitt) |
6000 |
Testartikel 4711 |
|
|
68 |
|
6001 |
Testartikel 4712 |
|
|
19 |
|
Der 7-Tage Verbrauch soll die Summe der Menge Pal eines Artikel der letzten 7 Tage sein. Also quasi ein S-Verweis mit 2 Bedingungen (Artikelnummer und Datum), jedoch zusätzlich die Summe davon, falls mehrere Zeilen beide Bedingungen erfüllen. Und davon dann die Summe der letzten 7 Tage.
Um letzteres zu vereinfachen, habe ich überlegt, dass man eine zusätzliche Tabelle anlegt, bei denen die Tagessummen pro Artikel aufgelistet werden und man sich daraus dann die Summe der 7 Tage holt. Etwa so:
Artikel |
05.05.2021 |
04.05.2021 |
03.05.2021 |
02.05.2021 |
01.05.2021 |
30.05.2021 |
29.05.2021 |
6000 |
68 |
0 |
0 |
0 |
0 |
0 |
0 |
6001 |
19 |
0 |
0 |
0 |
0 |
0 |
0 |
Am liebsten wäre mir eine Lösung mit VBA. Folgende Ansätze habe ich:
Zuletzt eingetragene Artikelnummer finden:
Artikelnr = Sheets("Tabelle 1").Cells(Cells(Rows.Count, "A").End(xlUp).Row, "A")
Von der Adresse der Artikelnr aus das Datum oder die Menge finden:
Artikelnr.Offset(0, 3) bzw. Artikelnr.Offset(0, 4)
In der zusätzlichen Tabelle könnte man die Tage so ansteuern:
If Range("XY").Value = Date then....
If Range("XY").Value = Date - 1 then....
....
Ist zwar recht umfangreich aber zerrt das ganze m.E. etwas auseinander.
Ich bin ein absoluter Neuling und habe mir die Basics durch Ausprobieren beigebracht. Daher benötige ich euer Schwarmwissen und hoffe eine Lösung zu finden. Einen kompletten Code habe ich nicht aber falls nötig könnte ich noch weitere Bruchstücke schicken, die ich verwende.
Falls noch Infos fehlen meldet euch gern ;)
Gruß,
Mawing
|