Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Warenbestände fortschreiben





Frage

Hi, mit Excel stehe ich nicht auf Kriegsfuss aber dies hier hat es entweder in sich oder ich stehe auf dem Schlauch. Tabellenaufbau ist folgender. Anfangsbestand, Zugang und Abgänge und aktueller Bestand. Dabei sollen in den Zu- und Abgängen immer nur eine Zahl eingetragen werden, und hier ist das Problem. Z.B. Anfangsbestand 100. Entnahme 10. Ergibt 90. Wenn ich nun z.b. 5 entnehme geht mir die 10 verloren weil ich sie lösche. Weiß jemand Rat? Danke

Antwort 1 von Saarbauer

Hallo,

vom Grundsatz her verstanden.

Du kannst nicht in die gleiche Zelle unerschiedliche Werte schreiben, da immer nur ein wert in der Zelle stehen kann.

Du musst die Veränderungen im Bestand immer in eine neue Zelle schreiben. So z.B.
Zeile 1 Überschriften
In Zelle D2 Anfangsbestand
in Zelle B3 Zugang
in Zelle C3 Abgang
daraus ergibt sich für D3 =D2+B3-C3
und dies nach unten ziehen
In Spalte A steht das Datum

Gruß

Helmut

Antwort 2 von Anjafragtgerne

Ja das dachte ich mir schon, aber sieht irgendwie nicht so aus, wie ich es gerne hätte ;-) danke für den Tip!

Antwort 3 von wim

Hallo,
darueber hab ich auch schon nachgedacht.
Meine Loesung:
in Spalte A steht der Bestand in Spalte B die Formel
=-3+10-4-5
Formel in Spalte C =a1-b1
eleganter ueber ein Makro zu loesen, welches ueber
eine Schaltflaeche anbietet einen Zu- oder Abgang zu buchen
und nach erfolgtem Eintrag die Formel in B1 neu generiert.

Gruss

wim

Antwort 4 von coros

Hallo Anjafragtgerne,

von mir kommt eine VBA Lösung. Da Du leider nicht geschrieben hast, in welchen Spalten sich Deine Bestände befinden, müssen wir uns hier alle Spalten überlegen. Ich habe mich für folgende entschieden:

Spalte A = Warenbezeichnung
Spalte B = Waren-Anfangsbestand
Spalte C = Waren- Zugabe
Spalte D = Waren-Entnahme
Spalte E = Waren-Gesamtbestand


Wenn Deine Tabelle so aussehen sollte, wovon ich mal nicht ausgehe, da gehört folgender VBA- Code in das VBA- Projekt des Tabellenblattes, in dem die Warenbestandsberechnung durchgeführt werden soll.

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Application.EnableEvents = False
Rem: Wenn Warenanfangsbestand geändert wird, aktuellen Bestand neu berechnen
If Target.Column = 2 Then _
Cells(Target.Row, 5) = Cells(Target.Row, 2) + Cells(Target.Row, 5)
Rem: Wenn Warenzugang geändert wird, aktuellen Bestand neu berechnen
If Target.Column = 3 Then _
Cells(Target.Row, 5) = Cells(Target.Row, 3) + Cells(Target.Row, 5)
Rem: Wenn Warenentnahme geändert wird, aktuellen Bestand neu berechnen
If Target.Column = 4 Then _
Cells(Target.Row, 5) = Cells(Target.Row, 5) - Cells(Target.Row, 4)
Application.EnableEvents = True
End Sub


Hier wird je nach dem, in welcher Spalte eine Zahl geändert wird, der Bestand in Spalte E neu berechnet. Wenn Du das für Deine Datei übernehmen möchtest, die Daten aber in anderen Spalten stehen, musst Du überall dort, wo Zahlen stehen, die richtige Spaltenindexzahl eintragen. Die Spalte A hat hierbei die Spaltenindexzahl 1, die Spalte B die Zahl 2, die Spalte C die Zahl 3 usw. bis zur Spalte IV mit der Zahl 256. Mal an einer Codezeile aus obigen Code erklärt: Mit der Zeile

Rem: Wenn Warenentnahme geändert wird, aktuellen Bestand neu berechnen
If Target.Column = 4 Then _
Cells(Target.Row, 5) = Cells(Target.Row, 5) - Cells(Target.Row, 4)


wird der Bestand in Spalte E (Zahl 5) neu berechnet, wenn in Spalte D (Zahl 4) eine Veränderung eintritt. Die Target.Column- Eigenschaft sagt hier nur die Zeile der Änderung aus. Du möchtest nun, dass z.B. bei Entnahme, das bei Dir in Spalte F eingetragen wird, der Bestand, der z.B. in Spalte I steht, neu berechnet wird. Dann würde die Codezeile folgendermaßen lauten:

Rem: Wenn Warenentnahme geändert wird, aktuellen Bestand neu berechnen
If Target.Column = 6Then _
Cells(Target.Row, 9) = Cells(Target.Row, 9) - Cells(Target.Row, 6)


Wie Du siehst, haben sich die Zahlen geändert. Anstelle der Zahl 4 für Spalte D steht doret nun die Zahl 6 für Spalte F und anstelle der Zahl 5 für Spalte E steht dort nun die Zahl 9 für Spalte I.

Ich hoffe, Du hast das verstanden und dass Du klar kommst Bei Fragen melde Dich bitte wieder.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 5 von karinka

Hallo,

Zelle A1 --->Anfangsbestand (manuell eintragen)
Zelle B1 --->Zugang (manuell eintragen)
Zelle C1 --->Abgang (manuell eintragen)
Zelle D1 --->aktueller Bestand (automatischer Eintrag)
Zelleninhalt D1 = Excel-Formel
=WENN($B1&$C1="";"";WENN($B1>0;$A1+$B1-$C1;
WENN($C1>0;$A1+$B1-C1)))

Zelle D2 ---> aktueller Bestand (automatisch)
Zelleninhalt D2 = Excel-Formel
=WENN($B2&$C2="";"";WENN($B2>0;$D1+$B2-$C2;
WENN($C2>0;$D1+$B2-C2)))

die Zelle D2 weiter nach unten kopieren
(in D3...D4...D5...usw.)

Gruss

karinka

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: