12.02.2018, 18:48 (Dieser Beitrag wurde zuletzt bearbeitet: 12.02.2018, 18:49 von Couch81.)
Hi
Ich lasse mich gern eines Besseren belehren, aber bis dahin bleibe ich dabei:
Bestände fallen nicht vom Himmel, sondern es gibt Anfangsbestände, Zugänge (woher auch immer), Abgänge (wohin auch immer) und Endbestände.
Um bei deinem Bsp. Mayo zu bleiben:
Anfangsbestand z.B. 3 Tuben
./. Verbrauch 3 Tuben
= Neuer Bestand 0 >> ohne Anfangsbestand kannst du nichts verbrauchen (und Excel weiß ja nicht, wovon es den Verbrauch von hier 3 abziehen soll)
+ Zugang aus Übernahme: 9 Tuben
./. Verbrauch 1 Tube
= Endstand 8 Tuben (bei ingesamt 4 verbrauchten Tuben)
Nur aus 3 der 4 o.a. Größen kannst du die fehlende ermitteln.
folgender Code kommt in das schon vorhandene VBA-Modul des entsprechenden Tabellenblattes:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngZ As Long
If Target.Address = "$E$1" Then
lngZ = Target.Value
On Error Resume Next
Application.EnableEvents = False
Application.Undo
Target.Offset(, 1).Value = Target.Offset(, 1).Value + Target.Value - lngZ
Target.Value = lngZ
Application.EnableEvents = True
On Error GoTo 0
End If
End Sub
folgender Code kommt in das schon vorhandene VBA-Modul des entsprechenden Tabellenblattes:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngZ As Long
If Target.Address = "$E$1" Then
lngZ = Target.Value
On Error Resume Next
Application.EnableEvents = False
Application.Undo
Target.Offset(, 1).Value = Target.Offset(, 1).Value + Target.Value - lngZ
Target.Value = lngZ
Application.EnableEvents = True
On Error GoTo 0
End If
End Sub
Ich will ja nicht der Spielverderber sein, aber:
Das VBA-Script funktioniert technisch einwandfrei, habs getestet... du darfst aber keine Mayo mehr einkaufen und den Bestand erhöhen,
denn dann stimmt dein Verbrauch nicht mehr.
Kurzum: Wenn der Bestand des Artikels nur bis auf Null runtergehen soll, kommst du mit dem Skript hin. Hast du aber einen lebenden Bestand, klappt es nicht.