Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1408to1412
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

Artikel Etiketten

Artikel Etiketten
08.02.2015 16:03:52
Didier

Hallo
Ich habe hier aus dem Forum eine Lagerverwaltung welche ich jetzt auf meine Bedürfnisse angepasst habe (jetzt ist es eine Artikeletiketten Druck Verwaltung). Ich erfasse in dieser diverse Artikel (z.B. Hosen, Blusen usw.), vom jeweiligen Artikel gibt es verschiedene Grössen wie Ihr in der Datei sehen könnt.
Auf der linken Seite gebe ich die Artikel inkl. Lieferant Grössen und Preis ein, auf der rechten Seite sollte nun aber für den jeweiligen Artikel das wie folgt aussehen
ArtNr Bezeichnung Grösse Lieferant Preis Stückzahl
1600 Hose 36 Testlieferant CHF 100.- 2
1600 Hose 40 Testlieferant CHF 100.- 2
1600 Hose 42 Testlieferant CHF 100.- 2
1600 Hose 44 Testlieferant CHF 100.- 2
1700 Bluse 36 Testlieferant CHF 50.- 2
1700 Bluse 40 Testlieferant CHF 50.- 2
1700 Bluse 42 Testlieferant CHF 50.- 2
1700 Bluse 44 Testlieferant CHF 50.- 2
Nun ist es aber so, das es jetzt wie folgt aussieht
ArtNr Bezeichnung Grösse Lieferant Preis Stückzahl
1600 Hose 36 Testlieferant CHF 100.- 2
1700 Bluse 36 Testlieferant CHF 50.- 2
Die Formel in der rechten Liste berücksichtigt anscheinend nur den ersten Eintrag und alle anderen nicht. Lösche ich nun auf der linken Seite bei allen Grössen die Stückzahl und trage nur bei einer etwas ein (z.B jetzt anstatt 2 Stück Grösse 36 nun 2 Stück bei Grösse 42) erscheint rechts auch die entsprechende Grösse 42 im Grössen Feld.
Es sollte wie die erste Auflistung dargestellt werden, aber ich bin mit meinen Kenntnissen am Ende angelangt. Sobald ich ja dann auf Artikel Etiketten klicke trägt das Makro die Werte der rechten Darstellung im Worksheet Datenbank wie folgt ein:
1600 | Hose | 36 | Testlieferant | CHF 100.-
1600 | Hose | 36 | Testlieferant | CHF 100.-
1700 | Bluse | 36 | Testlieferant | CHF 100.-
1700 | Bluse | 36 | Testlieferant | CHF 100.-
Sollte aber nach klick auf Artikel Etiketten wenn die Darstellung rechts so wäre wie die erste Auflistung ganz am Anfang dieses Posts dann so aussehen (die Stückzahl wird nicht mit eingetragen, da ja für die jeweilige Stückzahl der Artikel entsprechend so viel mal eingetragen wird):
1600 | Hose | 36 | Testlieferant | CHF 100.-
1600 | Hose | 36 | Testlieferant | CHF 100.-
1600 | Hose | 40 | Testlieferant | CHF 100.-
1600 | Hose | 40 | Testlieferant | CHF 100.-
1600 | Hose | 42 | Testlieferant | CHF 100.-
1600 | Hose | 42 | Testlieferant | CHF 100.-
1600 | Hose | 44 | Testlieferant | CHF 100.-
1600 | Hose | 44 | Testlieferant | CHF 100.-
1700 | Bluse | 36 | Testlieferant | CHF 100.-
1700 | Bluse | 36 | Testlieferant | CHF 100.-
1700 | Bluse | 40 | Testlieferant | CHF 100.-
1700 | Bluse | 40 | Testlieferant | CHF 100.-
1700 | Bluse | 42 | Testlieferant | CHF 100.-
1700 | Bluse | 42 | Testlieferant | CHF 100.-
1700 | Bluse | 44 | Testlieferant | CHF 100.-
1700 | Bluse | 44 | Testlieferant | CHF 100.-
Ich hoffe das ich mich einigermassen verständlich ausgedrückt habe und mir hier im Forum jemand helfen kann (Ich habe die Datei zur Ansicht auch noch mit beigefügt).
https://www.herber.de/bbs/user/95623.xls
Freundliche Grüsse
Didier

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Artikel Etiketten
08.02.2015 18:22:33
Michael
Hallo Didier,
ich habe Dein Makro mit etwas "sprechenderen" Variablennamen versehen und auf den "rechten Teil" Deiner Tabelle verzichtet; es holt die Daten direkt aus dem Bereich Deiner Eingabe:
Option Explicit
Sub LL_2_DB()
Dim x, i, db_zeile, zeilen_max, zeile, spalte As Long
Dim anzahl As Long
Sheets("Lagerliste").Select
zeilen_max = Range("A2").End(xlDown).Row
db_zeile = 1
For zeile = 3 To zeilen_max
For spalte = 3 To 6
If Cells(zeile, spalte) <> "" Then
For anzahl = 1 To Cells(zeile, spalte)
Worksheets("Datenbank").Cells(db_zeile, 1).Value = Cells(zeile, 1).Value
Worksheets("Datenbank").Cells(db_zeile, 2).Value = Cells(zeile, 2).Value
Worksheets("Datenbank").Cells(db_zeile, 3).Value = Cells(1, spalte).Value
Worksheets("Datenbank").Cells(db_zeile, 4).Value = Cells(zeile, 7).Value
Worksheets("Datenbank").Cells(db_zeile, 5).Value = Cells(zeile, 8).Value
db_zeile = db_zeile + 1
Next anzahl
End If
Next spalte
Next zeile
End Sub
Mit meinem X2000 tut es brav.
Grundsätzlich möchte ich Dich auf die strukturellen Schwächen des Ansatzes hinweisen: wenn Du Dir ein Warenwirtschaftssystem vorstellst, stecken in Deinen Etiketten Daten aus verschiedenen Datenbanken ("Tabellen"), die Artikelbezeichnung aus der einen, der Lieferant aus der nächsten, der Warenbestand aus dem Lager usw.
Ohne vernünftige Struktur stößt man eben auf Probleme...
... die Dir im Moment gar nicht bewußt sind:
Was ist, wenn eine Größe hinzukommt?
Was ist, wenn unterschiedliche Größen unterschiedliche Preise haben?
Ich schwinge mich mal zu einer Art Lehrsatz auf:
Vernünftig "strukturiert" ist es dann, wenn Du damit *ohne* Änderung Deiner Tabelle (Deines Makros) zurechtkommst.
Das Makro tut so, wie Du es im Moment willst, aber Du tust Dir wahrscheinlich selbst einen Gefallen, wenn Du Dir Gedanken über "Datenbankdesign" und "Datenstrukturen" machst.
Schöne Grüße,
Michael

Anzeige
AW: Artikel Etiketten
08.02.2015 21:19:33
Didier
Hallo Michael
Ich danke Dir mal schon im Voraus für deine Hilfe. Nun habe ich meine Datei noch ein wenig angepasst, das heisst ich habe mal alle Grössen von 36 bis 46 hinzugefügt und beim Makro die einte Position angepasst.
Deine Angabe:

For spalte = 3 To 6
Meine angepasste Version (damit das Makro für die Grössen 36-46 die Einträge im Worksheet Datenbank macht):

For spalte = 3 To 13
Nun ist es aber so, das der Lieferant und der Preis nicht eingetragen werden (es sieht nun im Worksheet wie folgt aus):
ArtNr | Bezeichnung | Grösse | ein wert keine ahnung woher | ein wert keine ahnung woher
1600 | Hose |36 | 1 | 1
sollte aber so aussehen
ArtNr | Bezeichnung | Grösse | Lieferant | Preis
1600 | Hose |36 | Testlieferant 01| 100.00 CHF
Ich wäre froh wenn Du da nochmal drüberschauen könntest (wenn es keine Mühe macht) und mir sagen würdest wo ich was ändern muss. Und falls ich jetzt noch mehr Angaben reinpaken würde was ich ändern/ergänzen müsste das dies dann auch korrekt in das Worksheet Datenbank übertragen wird.
geänderte Datei: https://www.herber.de/bbs/user/95627.xlsm
Danke nochmals im Voraus Michael für deine Hilfe.

Anzeige
AW: Artikel Etiketten
08.02.2015 21:40:22
Didier
Hallo Michael
Habe es jetzt gerade selbst rausgefunden woran das es gelegen hat das die Werte nicht korrekt eingetragen wurden (übung und lesen macht den Meister) und zwar habe ich diese beiden Angaben geändert
Deine Angabe im Makro:

Worksheets("Datenbank").Cells(db_zeile, 4).Value = Cells(zeile, 7).Value
Worksheets("Datenbank").Cells(db_zeile, 5).Value = Cells(zeile, 8).Value
diese waren ja für die Eintagung der Werte Lieferant und Preis in der Datei zuständig welche ich als erstes hier eingestellt hatte (diese hatte ja nicht so viele Grösse drin) und jetzt als ich es nochmals angeschaut hatte, hab ich realisiert das sich ja die Position der Werte geändert hatte und habe sie auf folgende angepasst.
Meien angepasste Angabe im Makro:

Worksheets("Datenbank").Cells(db_zeile, 4).Value = Cells(zeile, 14).Value         Worksheets(" _
Datenbank").Cells(db_zeile, 5).Value = Cells(zeile, 15).Value
Lieferant und Preis hat sich ja nach rechts verschoben durch das hinzufügen der anderen Grössen und das musste ich natürlich auch anpassen (an den Kopflang).
Und wenn ich jetzt noch andere Werte wie Farbe etc. hinzufügen möchte muss ich die Angaben ja anpassen und das würde dann im Makro denke ich so aussehen.
Meien angepasste Angabe im Makro (wenn noch mehr Angaben hinzukommen würden:

Worksheets("Datenbank").Cells(db_zeile, 4).Value = Cells(zeile, 14).Value (angabe für Farbe)
Worksheets("Datenbank").Cells(db_zeile, 5).Value = Cells(zeile, 15).Value (angabe für Saison)
Worksheets("Datenbank").Cells(db_zeile, 6).Value = Cells(zeile, 16).Value (angabe für Lieferant) _
Worksheets("Datenbank").Cells(db_zeile, 7).Value = Cells(zeile, 17).Value (angabe für Preis)
Ist das so in etwa korrekt ?????

Anzeige
so in etwa
09.02.2015 17:06:49
Michael
Hallo Didier,
"so in etwa": ich denke, Du hast das Prinzip verstanden und kommst mit Probieren gut weiter.
Ich befürchte nur, Du wirst über kurz oder lang an die Grenzen der Struktur stoßen. Ein Kennzeichen für die Saison mag ja noch angehen, aber wie willst Du in Deiner (ersten) Tabelle noch Farben unterbringen? Die gute Jacke gibt es pro Größe in grün, rot und blau, da bräuchtest Du quasi noch eine Dimension, um die einzelnen Farben "hinter" jeder einzelnen Größe zu speichern und getrennt abzurufen.
Der sauberere Weg wäre meines Erachtens, alles zeilenweise zu erfassen, also im Prinzip genau so, wie Du es in Deiner "Datenbank" haben willst. Dann müßte das Makro nämlich nur noch die Zeilen je nach Anzahl vervielfachen.
Ich hoffe, ich habe mich verständlich ausgedrückt.
Schöne Grüße,
Michael

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige