Bestell-Liste
#1
Hallo zusammen,

Problem lässt sich wie folgt beschreiben:

Vorhanden/Input:

Liste mit anstehenden Bestellposition

Best-Nr --- Artikel ------ Menge
1                E-01              2
1                B-02              2
2                A-01              1
3                S-01              4
4                D-01              1
4                E-01              2
5                D-01              1
5                E-01              1
5                S-01              1
6                E-01              1
7                B-02              2
7                E-01              2
8                E-01              1
9                E-01              2
9                B-02              1
9                D-01              1
10               A-01              1

Jetzt will ich die Tabelle mit VBA bearbeiten

Es soll zwischen Einzelauftrag(Best-Nr kommt einmal vor) und Sammelauftrag(Best-Nr kommt mehrmals vor) unterschieden werden,

und am Besten sollen daraus  zwei sortierte Listen erzeugt werden.

Vielen Dank schon Mal im Voraus
Grüße Afu-Ra
Top
#2
(13.01.2018, 22:41)snowraider schrieb: Jetzt will ich die Tabelle mit VBA bearbeiten

... und was hindert dich daran?
Wenn du schon das "große Wort" VBA in den Ring wirfst: Welche Vorarbeit hast du denn schon geleistet, damit die Helfer hier en détail und gezielt Hilfestellung leisten können?
Beste Grüße
  Günther

Excel-ist-sexy.de
  …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Top
#3
bisher habe ich mit debug.print ausgegen ob die nächste zeile eine einzelauftrag ist oder nicht

mit Fehler Dodgy


Angehängte Dateien
.xlsm   vba1.xlsm (Größe: 23,24 KB / Downloads: 4)
Top
#4
Moin!
Per Formel:
ABCD
1BNrArtMengeE/S
21E-012S
31B-022S
42A-011E
53S-014E
64D-011S
74E-012S
85D-011S
95E-011S
105S-011S
116E-011E
127B-022S
137E-012S
148E-011E
159E-012S
169B-021S
179D-011S
1810A-011E

ZelleFormel
D2=WENN(ZÄHLENWENN(A:A;A2)>1;"S";"E")

Jetzt setzt Du einen Filter auf E/S und gut ist.
Zitat:und am Besten sollen daraus  zwei sortierte Listen erzeugt werden
Nach welchem Kriterium soll sortiert werden?
Aber das bekommst Du sicherlich alleine hin.

Wozu willst Du unbedingt VBA verwenden?

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • snowraider
Top
#5
Guten Morgen,

und vielen Dank für die frühe Antwort.

Das mit der Formel hat super geklappt, hab das nun als Makro aufgezeichnet und alle Einzelaufträge in ein neues Sheet kopiert.


Es soll danach weiter sortiert werden, abhängig von der Größe der Artikel.

Es soll auch die gesamte Größe der Bestellung errechnet werden.

Und das ganze will ich am besten in einen VBA-Code umsetzen.

Also z.B. bei den Einzelaufträgen ergeben zwei große Artikel eine Tour
oder insgesamt 16 kleine Artikel ergeben eine Tour.

Also so ist es vom Regelwerk, da komme ich ja vermutlich an VBA kaum vorbei.


Freue mich schon auf Antwort
& Vielen Dank für die Bemühungen
echt Tolles Forum
Top
#6
Hallo,

leider beschreibst du nur sehr allgemein, wo die Reise hingehen soll. Grundsätzlich ist es so, dass man mit VBA nichts machen kann, was Excel mit seinen Standradfunktionen nicht auch kann.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
[-] Folgende(r) 1 Nutzer sagt Danke an Klaus-Dieter für diesen Beitrag:
  • snowraider
Top
#7
Hallo Klaus-Dieter & Co,

tut mir leid, dass ich mich nicht präzise ausgedrückt habe,
bin gerade noch am Tüfteln wie ich das ganze hinbekomme.

Wir haben ja bislang noch die Liste mit allen anstehenden Bestellpositionen und verschiedenen Mengen.

Der erste große Schritt ist ja getan, dass wir nun zwischen Einzel & Sammelauftrag unterscheiden können.

Gerade umgesetzt habe ich das gesamte Volumen für eine Bestellung,
dies lässt sich durch die Summe artikelgröße+menge errechnen,
das ist der benötigte Raum für die Bestellung

Der Wunsch ist dass die anfängliche Liste nach Einzelauftrag geteilt wird und diese werden anhand einer maximal zulässigen Volumenzahl zusammengeführt.

Sprich 2 große Artikel oder 4 mittlere oder 16 kleine haben das Volumen der Kapazität erfüllt

Falls es noch unklar ist, kann ich auch mal beispielhafte Daten hochladen,

aber ich hoffe die Problemstellung ist nun so beschrieben, dass es hoffentlich verstanden wird.

Ansonsten versuche ich es prägnanter.

Viele Grüße & Vielen Dank
SnowRaider
Top
#8
Hallo

schau dir bitte mal die Beispieldatei an, ob dir meine Lösung so gefaellt.  
Man kann auch 2 Tabellen draus machen.  Button drücken, Fertig ... !!!

mfg  Gast 123


Angehängte Dateien
.xlsm   vba1 F.xlsm (Größe: 28,65 KB / Downloads: 12)
[-] Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:
  • snowraider
Top
#9
Hallo Gast123,

so auf den ersten Blick ist es genial wie dies gelöst wurde, :18:

ich werde mich sofort hinten den Quellcode setzten, um alles nachzuvollziehen und  neue Sachen zu lernen,
:21:
Vielen vielen Dank ^^

Ohne den Code anzuschauen ist mir ein kleiner Fehler aufgefallen und zwar:

die letzte Position eines Sammelauftrages wird immer als Einzelauftrag erkannt!

:05:
Juhu vielen Dank nochmal für die Mühe werde gleich mal weiter schauen wie die Problemlösung weiter Form annimmt.

Viele Grüße an alle
Top
#10
Hallo snowraider

ich freue mich das dir der Code gefaellt und du ihn nachvollziehen willst.  Unter uns, nur so lernt man effektiv VBA!

Was den Fehler verursacht kann ich idr sagen:  da wollte ich überschlau sein!  Mir eine 3. IF Then Auswertung sparen!  Diese Zeile verursacht ihn:
AT.Cells(j, 1).Resize(2, 5).Copy .Cells(sz, "I")   Es ist die Zahl 2 statt 1. Ersetzt du sie durch 1 fehlt dir immer der letzte Auftrag im Sammelauftrag!

Was ich vergessen habe ist die Prüfung in der letzen Zeile!  Schau mal ob du es selbst korrigieren kannst. (z.B. die zuviel kopierte Zeile hinter Next j prüfen und wenn zuviel löschen!  Wenn du willst kannst du die Daten auch in zwei getrennte Tabellen kopieren, der Code ist leicht zu versthen!

mfg  Gast 123
[-] Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:
  • snowraider
Top


Gehe zu:


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