PDA

Vollständige Version anzeigen : Zufällige Zahlen ohne dopplung


BaSiiC
27.09.2016, 08:29
Hallo zusammen,
vielleicht kann mir ja einer von euch weiterhelfen.
Ich habe eine Tabelle die lautet Kopfdaten.
In dieser werden Datum (bis zu 100x das gleiche, aber innerhalb eines Monats) mit einer zufälligen Uhrzeit und einer Bonnummer(Entspricht je einem Datum mit zugehöriger Uhrzeit) aufgelistet.
Aus dieser Tabelle wird die Bonnummer in die Tabelle Item übertragen.
Diese Bonnummer kann je nach Anzahl von Artikeln aus der Tabelle "Artikel" mehrmals aufgelistet werden.
Einer Bonnummer soll aus der Tabelle Artikel zufällig unterschiedliche Artikelnummern zugeordnet werden, die aber nicht doppelt vorkommen dürfen. ( Mein Problem )

Beispiel; So soll es aussehen:
Bonnummer: Artikelnummer:
1 2157
1 2158
1 2758
2 2157
2 2158
2 2758

Eine Bonnummer darf nur einen Artikel der selben Artikelnummer enthalten.
Sprich es darf pro Bonnummer die Artikel nicht doppelt vorkommen, aber auf der nächsten Bonnummer wieder.

Hier mal ein Teil meines Codes:

AnzahlZeilen = Die Anzahl an zeilen in Tabelle "Artikel" für die Artikelnummer
Artnr = Entnimmt die Artikelnummer aus der zufällig gewählten Zeile von Artikelnr
artpreis = Entnimmt die Artikelpreis aus der zufällig gewählten Zeile von Artikelnr
mwst = Entnimmt die Artikelmehrwertsteuer aus der zufällig gewählten Zeile von Artikelnr


For q = 1 To Bon
Artikelmenge = CInt(Round(Int((5 - 1 + 1) * Rnd()))) + 1
Artikelnr = CInt(Round(Int(((Anzahlzeilen) - 2 + 1) * Rnd()))) + 2
Artnr = Worksheets("Artikel").Cells(Artikelnr, 1).Value
artpreis = Worksheets("Artikel").Cells(Artikelnr, 2).Value
mwst = Worksheets("Artikel").Cells(Artikelnr, 3).Value

mwst1 = mwst / 100
prozent = artpreis * mwst1
artendpreis = artpreis + prozent

Worksheets("Item").Cells(w, 1) = y
Worksheets("Item").Cells(w, 2) = Artnr
Worksheets("Item").Cells(w, 3) = Artikelmenge
Worksheets("Item").Cells(w, 4) = artpreis
Worksheets("Item").Cells(w, 5) = mwst
Worksheets("Item").Cells(w, 6) = Artikelmenge * artendpreis
w = w + 1
Next q


VBA-Forum (http://www.vba-forum.de/forum/View.aspx?ziel=30691)
tutorials.de (https://www.tutorials.de/threads/zahlen-nicht-doppelt-vergeben.403978/)

steve1da
27.09.2016, 08:34
Hola,

verlinkst du bitte deine Beiträge in den verschiedenen Foren untereinander?
Danke.

Gruß,
steve1da

rastrans
27.09.2016, 10:15
Da sich hier (https://www.tutorials.de/threads/zahlen-nicht-doppelt-vergeben.403978/) schon jemand darum kümmert, brauchen wir nicht weiter darüber nachzudenken! :nene:

BaSiiC
27.09.2016, 10:17
Es stimm, dass dort jemand antwortet. Jedoch war der jenige bereits seit mehreren Tagen nicht mehr da. Dementsprechend kann ich nicht weiter arbeiten bzw. ist dies der letzte punkt um das Projekt zu vollenden. In Folge dessen wäre es ganz nett, wenn auch hier jemand das Thema aufgreifen könnte.

xlph
27.09.2016, 12:56
Lad die Datei hoch und beschreibe es anhand der Datei nochmal.

BaSiiC
27.09.2016, 14:04
Also im Anhang findet ihr meine Datei.

Es ist auch soweit alles erklärt.
Das Script wiederholt sich innerhalb der Monate, deswegen ist es etwas länger.

Aber hier nochmal meine Erklärung:
Ihr werdet drei Tabellen auffinden, in denen nur in der Tabelle "Artikel" etwas drin steht; Artikeldaten.
Die werden im Laufe des Prozesses ausgelesen und übertragen.
Hinzukommend werden Datum, Uhrzeit und eine Bonnummer in den Kopfdaten generiert.
Nun möchte ich aus der Tabelle Artikel, eine zwischen 1 und 5 liegende Zahl an Artikelnummern auslesen, die dann in die Tabelle Item übertragen werden und dort einer Bonnummer zugeordnet. Jedoch darf eine Artikelnummer nur 1x innerhalb einer Bonnummer stehen.

BaSiiC
28.09.2016, 11:24
Ich bedanke mich für die zahlreiche Hilfe aber ich habe es selber lösen können.