12.02.2018, 19:48 (Dieser Beitrag wurde zuletzt bearbeitet: 12.02.2018, 19: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.