Verschiedene Zellen gleiche Werte
#1
Hallo zusammen

Ich bin momentan Excel am ausprobieren.

Jetzt bin ich an ein Problem gestossen, das mal wieder alleine nicht lösbar ist.

Als Beispiel

ich habe Zwei Tabellen Tabelle 1 und Tabelle 2
In der Tabelle 1 trage ich Produkte mit Artikelnummer Anzahl Preis usw. Die Eingabe erfolgt über eine Userform in VBA bis jetzt ziemlich simple Sache. Also Lagerbestand
Jetzt wird jedoch spannen, zumindest für mich.
In der Tabelle 2 möchte ich ein Verkaufstabelle erstellen.
sprich:
Es wird durch eine VBA Maske wieder Inhalt in die Tabelle geschrieben, jedoch wird sich die Artikelnummer wiederholen, denn Bei einem Verkauf kommen Materialien aus der erhaltenen Bestellung(Lagerbestand). Somit kommen wir zur Frage.

Ich möchte das Excel mir Produkte aus dem Lagerbestand abziehen kann wenn ich einen Verkauf abschliesse über die VBA.
Im weiteren würde ich gerne aus der Tabelle Bestellübersicht die Preis anhand der Artikelnummer nach Verkäufe eintragen damit ich weiter rechnen kann mit den Zahlen

Meine Güte habs mal wieder so kompliziert geschrieben das es niemand versteht. Sorry das war noch nie meine Stärke

Gruss Age


Angehängte Dateien
.xlsm   AMSline.xlsm (Größe: 68,29 KB / Downloads: 9)
Antworten Top
#2
Hallöchen,

also, mal von der Logik her, wenn Du im ersten Userform mit VBA den Lagerbestand auffüllst, brauchst Du doch nur mit so einem Code den Lagerbestand anhand der Entnahme zu senken ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
Hallo erst mal ...
Zitat:also, mal von der Logik her,

ist alles recht simpel, aber das Makro ist sicher sehr umfangreich geworden. Ich hoffe alle erdenklichen Fehler als Fehlermeldung berücksichtigt zu haben. Dazu gehört auch das versehentliche falsche Anklicken der Comboboxen in der Überschriftszeile. Würde mich freuen wenn alees klappt.
Neu eingefügt, kann man löschen wenn nicht gewünscht, ist eine Spalte Verkäufe im Lagerbestand.  Neu eingefügt habe ich in der Bestellübersicht eine Spalte Kunden Nr., weil man sonst ja nicht weiss welcher Kunde die Sachen bestellt hat! Zur Zeit übertrage ich in der Bestellung aber nur den Productnamen wie in der Lagerliste, in Spalte D. Ich weiss leider nicht wie man den Text auf die Spalten D-F aufteilen soll??
Neu eingefügt habe ich auch das automatische erhöhen der Kunden und Lieferschein Nummer. Jetzt hoffe ich das alle Makros einwandfrei lauefen. Bei dem Umfang kann immer noch der eine oder andere Fehler drin sein.  Herzliche Grüsse in die Schweiz. Das waren doch Franken, oder?

mfg Gast 123


Angehängte Dateien
.xlsm   AMSline neu.xlsm (Größe: 70,5 KB / Downloads: 4)
[-] Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:
  • AgeegA
Antworten Top
#4
Meine Güte das ist ein Code ich bin begeistert, nur leider verstehe ich ihn nicht und zwar gar nicht. Ich werde mir ein paar Tage Zeit nehmen um den Code zu analysieren, Ich danke dir viel mal für diese mega tolle Arbeit.
Wow ein richtiger Crack 18

(30.09.2021, 19:18)AgeegA schrieb: Meine Güte das ist ein Code ich bin begeistert, nur leider verstehe ich ihn nicht und zwar gar nicht. Ich werde mir ein paar Tage Zeit nehmen um den Code zu analysieren, Ich danke dir viel mal für diese mega tolle Arbeit.
Wow ein richtiger Crack 18

Leider geht der VBA Teil auch noch nicht von dir jedoch bin ich mal dran bei mir kommt immer das eine Variable nicht Vergeben ist Variable Stück.
Aber danke noch mal.
Antworten Top
#5
Hallo

Sorry, ich vergass dir mitzuteilen das ich Teile des Codes geändert habe, um die Schreibweise zu verkürzen, das ist übersichtlicher.

Die With Klammer ist dir ja bekannt, die sah ich ja in deinem Code. Man kann aber nicht gleichzeitig With für die UserForm UND eine Tabelle verwenden. Um den Tabellencode zu kürzen nehme ich dann die Set Anweisung. Die erklärt eine Tabelle zum Objekt. Dann steht vor Cells oder Range nur der kurze Tabellenname, bei dir als "BstÜbs" für Bestellungsübersicht, oder als "Lag" für Lagerbestand.  z.B. Lag.Cells() ...

Überall wo du die Tabellen mit Activate aktiviert hast habe ich auf deinen Code auf die With oder Set Version umgestellt. Das erspart dir das ständige nervende Umschalten der Tabellen

Unbekannt ist dir wahrscheinlich meine GoSub Variante, viele Forum Kollegen benutzen diese interessante Möglichkeit NIE. GoSub muss immer mit Return beendet werden. D.H., das Programm kannst du dutzende male von jeder beliebigen Stelle im Makro aufrufen um ein und dieselbe Funktion abzuarbeiten. Ich habe sie verwendet zur Vorprüfung des Lagerbestandes, um Falschbuchungen zu vermeiden. Dann muss man ja alle vier Eingabefelder der Userform überprüfen ob der Artiekl exisitiert. Mir fiel auf das man ja auch die Überschrift der ComboBox anklickern konnte! Dann steht da "Product oder Lagerbestände" als Artikel! Mit GoSub ist das ideal. Man kann es viermal aufrufen und im Fehlerfall den Code miit einer Fehlermeldung abbrechen. Es wird ein zweitesmal aufgerufen beim verringern des Lagerbestandes. Wie du siehst ein idealer Code, den nur wenige Programmierer kennen und nutzen!

Bei dem Umfang kann immer noch mal ein Tuck drin sein. Es würde mich freuen wenn du mit dieser Erklärung den Code auch selbst verstehst. Das ist Excel Praxis vom feinsten, und ich bin nicht einmal ein Vollprofi. Aber nach 25 Jahren Excel Praxis Erfahrung gewieft.

Offen bleibt noch wie man in der Bestellung den Product Code auf die drei Spalten aufteilen kann. Mein Tipp dazu:
Ich suche ohnehin den Produkttext in der Lagerliste.  Wenn du drei neue Spalten für ID-Nr, Art und Artikel einfügst kann man diese Daten über die Variable j aus der Lagerliste in  die Bestellung übertragen. Sonst musst du den Text splitten. Geht auch, aber dann brauche ich Detailangeben wie und wo gesplittet werden muss. Vielleicht ein Komma einfügen???

mfg  Gast 123
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste