Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1576to1580
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

mehreres überarbeiten, wenn Wert negativ

mehreres überarbeiten, wenn Wert negativ
07.09.2017 13:59:37
Xero
Vorab: ich nutze Excel 2016 ;)
Hallo,
seit einiger Zeit sitze ich nun schon an diesem Projekt, komme aber aktuell mit meinen Anfänger-Kenntnissen, was VBA angeht, einfach nicht mehr weiter.
Ich habe ein Tabellenblatt, auf dem manuelle Eingaben erfolgen (gelb) und eines mit einer automatisierten Auswertung (grün). Es werden Lagerbewegungen abgebildet. Wenn etwas entnommen wird, soll von der zuletzt dem Wareneingang zugeführten Rechnungsnummer entnommen werden (LIFO-Methode). Soweit funktioniert auch alles.
Nun zum Problem: Wenn mehr entnommen wird, als von der letzten Rechnungsnummer noch Teile im Lager liegen, rutscht mein Bestand an Teilen dieser Rechnungsnummer ins Negative. Das darf nicht sein.
Meine Überlegungen hierzu sind, dass die entstandene negative Stückzahl im Blatt der manuellen Eingabe automatisch in eine neue Zeile geschrieben wird. Im Blatt "Material 3" entsteht dadurch eine weitere Zeile in der Entnahme-Tabelle. Bei dieser soll die Rechnungsnummer per VBA-Skript gleich noch angepasst werden, da nun ja von der nächst-Älteren Rechnung entnommen wurde. Falls aber auch diese Rechnungsnummer ins Negative fallen sollte, müsste der Prozess solange wiederholt werden, bis das nicht mehr der Fall ist.
Ich habe erst während dieses Projektes begonnen, mich mit VBA zu beschäftigen. Ich denke, ihr versteht, dass das Ganze mein "KnowHow" massiv übersteigt :D
PS: Ich habe überall mit Spaltenverweisen gearbeitet, da ich noch keine Ahnung habe, wie groß das Ganze mal wird - z.B. Range("W:W")
Userbild
https://www.herber.de/bbs/user/116087.jpg
Userbild
https://www.herber.de/bbs/user/116088.jpg (Hier die URLs zu den Bildern, falls sie nicht vollständig angezeigt werden)
Und hier ist noch die Excel-Datei (Makro-bereinigt) https://www.herber.de/bbs/user/116089.xlsx
Riesen Dank vorab schon fürs Versuchen :)

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: nachgefragt ...
07.09.2017 14:47:36
...
Hallo Xero,
... wäre es nicht praxisnaher, es nicht zum Entstehen eines Negativwertes kommen zu lassen? Also Du lässt
nur eine Entnahme zu, die Deinen Lagerbestand nicht überschreitet?
Gruß Werner
.. , - ...
Von mir trotzdem in VBA
07.09.2017 15:07:27
Peter
Hallo,
leider kenne ich keinen guten weg, eine Falsche eingabe ohne VBA zu lösen.
Hier deine Mappe mit VBA
und hier nur Code: https://www.herber.de/bbs/user/116094.xlsm
(Gehe wie folgt vor: Alt + F11 -> Tabelle1("Eingabe") Doppelklick -> Code reinkopieren)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value = "" Then Exit Sub
If Target.Column = 10 And Target.Row > 2 Then
If Target.Value > Cells(Target.Row, 4).Value Then
Application.EnableEvents = False
Target.Value = Cells(Target.Row, 4).Value
Application.EnableEvents = True
MsgBox "Ungültiger Wert!" & vbCrLf & "Max. Stückzahl: " & Cells(Target.Row, 4). _
Value
End If
End If
End Sub

Anzeige
AW: warum "trotzdem", VBA war doch gefragt ...
07.09.2017 16:06:00
...
Hallo Peter,
... ich habe ja Xero nur nachgefragt, warum er diesen Weg beschreitet. In Praxis kann man nämlich nur soviel entnehmen wie vorhanden ist.
Und zu Deiner Eingangs-"Fragestellung". Eine Möglichkeit wäre z.B. das visualisieren einer zu großen Entnahmemenge (mittels bedingter Formatierung) oder eine andere Möglichkeit wäre mittels einer Datengültigkeitsprüfung in den Eingabezellen eine zu hohe "Entnahmezahl" zu verhindern.
Gruß Werner
.. , - ...
VBA ist gefragt ;)
07.09.2017 16:17:34
Xero
Danke für eure schnellen Antworten.
In meinem Screenshot wurde nur von der Rechnungsnummer (32) mehr entnommen, als da ist. Insgesamt sind aber noch 300 Stk vom Material 3 im Lager, nur eben unter einer anderen Rechnungsnummer (31). Und die Zuordnung der Entnahmen zu entsprechenden Rechnungsnummern soll automatisch in Excel erfolgen. In der Praxis ist es egal, ob ein Teil von der einen oder der anderen Rechnungsnummer entnommen wurde. Leider ist das aber in der Gesetzgebung nicht so. Deshalb: Solange noch Teile im Lager liegen, sollen, wenn bei einer Entnahme der Restbestand der automatisch angesprochenen Rechnungsnummer unterschritten wird, die anderen Teile von der vorhergehenden Nummer verbucht werden.
Die Idee mit der MsgBox hatte ich auch schon, wäre aber nur meine allerletzte Option. Eben weil ich das ganze gern im Hintergrund rattern lassen möchte.
Zum Irttum, dass ich VBA vermeiden möchte: das möchte ich nichtmal ;) Ich habe nur eine Datei ohne Makro hochgeladen, damit keiner auf die Gedanken kommt, dass da vlt n Virus oder sowas den Rechner lahm legt (das soll ja über Makros ganz gut möglich sein :/ )
Anzeige
AW: VBA ist gefragt ;)
07.09.2017 16:33:18
Peter
Hallo,
da habe ich dein Problem wohl zu sehr überflogen!
Wenn ich dich jetzt richtig verstehe, möchtest du also, bei einem Überschreiten, die
Überschüssige Anzahl auf eine andere Rechnungsnummer mit gleichem "Produkt" übertragen.
Also:

Nr --> Teil-X --> Minus die Anzahl --> If Error -->
new Nr. --> Wo Teil = Teil-X --> Minus die Anzahl --> If Error -->
dann wiederhole solange kein Error oder keine Nr. + Teil-X mehr da

AW: VBA ist gefragt ;)
07.09.2017 23:00:01
Xero
Genau! Das geht in die richtige Richtung :)
Thema noch immer ungelöst
12.09.2017 14:19:54
Xero
Hat keiner eine Idee für mein Problem? :(
Anzeige
AW: warum "trotzdem", VBA war doch gefragt ...
07.09.2017 16:21:17
Peter
Naja die Bedingte ist ja lediglich visuell und per Datenüberprüfung muss mann doch
auf jede Zelle den Verweis einzeln bringen, oder geht das in einem?
Das Maximum wechselt ja von Zelle zu Zelle.
Bei der Datenüberprüfung kann man doch lediglich ein Maximum festlegen, bzw. den
Zellverweis immer nur auf eine setzen.
Somit müsste man ja dann, eine individuelle Überprüfung für immer 2 zusammengehörende Zellen
erstellen.
Kenne mich da nicht wirklich aus, hoffe ich lerne in diesem thread was dazu :)
AW: mehreres überarbeiten, wenn Wert negativ
12.09.2017 20:21:30
onur
Siehe VBA-Forum!
Du solltest nicht cross-posten, sonst machen sich etliche Leute umsonst die Mühe.
Anzeige
AW: mehreres überarbeiten, wenn Wert negativ
13.09.2017 11:59:55
Xero
Hallo Onur,
leider kann ich mit deinem "Siehe VBA-Forum!" nicht viel anfangen.
Cross-Posting...dank Google wieder einen neuen Begriff gelernt. Ich nehme an, du beziehst dich auf meine Frage "Makro automatisch starten, wenn Wert in Spalte" kleiner 0? Es mag zwar in eine ähnliche Richtung gehen, war von mir aber auf einen anderen Anwendungsfall bzw. Sachverhalt bezogen. Falls es wirklich ein Cross-Post sein sollte, war dieser nicht mit Absicht: ich warnicht der Meinung, dass diese Frage mit der hier diskutierten zusammenhängt. Auch wenn es sich ums selbe Gesamtprojekt handelt. Außerdem habe ich zu der anderen Frage in einigen Foren gesucht und noch keine solche gefunden, weshalb ich der Meinung bin, dass alle (die das vlt auch interessiert) an der Lösung teil haben sollten. Und diese auch leicht finden können.
Sry für den Roman. ;)
Anzeige
Update - still needing help ;)
14.09.2017 23:44:41
Xero
Hallo,
ich bin heute in stundenlanger Kleinstarbeit ein ganzes Stück weiter gekommen.
Vlt. die letzte Stelle, an der ich vor der vollen Funktionsfähigkeit hänge: unter Tabelle 6 habe ich ein Makro verbaut [Private Sub Worksheet_Calculate()], das nahezu alles aus meiner Anfangsfrage bewältigen kann. Leider hänge ich nun an der vorletzten Codezeile, welche mir immer "Laufzeitfehler 91: Die Objektvariable oder die With-Blockvariable wurde nicht festgelegt." ausspuckt.
Könnte bitte nochmal jemand darüber schauen? :) Hier ist die aktualisierte Datei inkl. Makros:
https://www.herber.de/bbs/user/116250.xlsm
Riesen Dank nochmal ;)
Anzeige

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige