Anzeige
Archiv - Navigation
924to928
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
924to928
924to928
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zufallsgenerator

Zufallsgenerator
14.11.2007 00:04:56
Max
Hallo zusammen!
Ich hatte schon einmal bezüglich diese Problems geschrieben. Komm aber einfach nicht weiter:
Ich bräuchte einen Zufallsgenerator (Makro), der folgendes erzeugt:
Ich habe eine ExcelTabelle mit Auftragsnummern in Spalte A und jeweils eine Artikelnummer. Nun möchte ich mit hilfe eines Makros jeweils 50 zufällige Auftragsnummern pro Artikel in eine andere Exceltabelle schreiben lassen. Diese neue Exceltabelle sollte dann in Spalte A die 50 Auftragsnummer vom Produkt "001", in Spalte B die 50 Auftragsnummer vom Produkt "002", etc. (es gibt 20 Produkte und ca.
10.000 Auftragsnummer)
Es wäre super wenn mir hierbei jemand helfen kann.
Viele Grüße,
Max

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zufallsgenerator
14.11.2007 00:29:59
Niki
Hallo
Dürfen Auftragsnummern doppelt an verscheidenen Produkte vergeben werden?
Z.B. Produkt 001 Auftragnr.43:458567
z.B. Produkt 015 Auftragnr.28:458567
Steht ansonsten noch was in dem ersten Tabellenblatt?
Niki

AW: Zufallsgenerator
14.11.2007 00:30:00
Oberschlumpf
Hi Max
Auch super wär es, wenn du uns per Upload eine Bsp-Datei mit ausreichend (so viel wie nötig/so wenig wie möglich) zur Verfügung stellst ;-)
Ciao
Thorsten

AW: Zufallsgenerator
14.11.2007 01:45:34
Tino
Hallo,
meinst du so, es wird aber nicht auf doppelte geachtet und es wird davon ausgegangen, dass in der ersten Spalte in Tabelle1 die Überschrift ist.

Sub MeineZufall()
Dim a As Byte, b As Byte
Dim zahl As Long
Dim Zufalldurch As Byte
Dim Tab1 As Worksheet, Tab2 As Worksheet
Application.DisplayAlerts = False
Set Tab1 = Sheets("Tabelle1")
Set Tab2 = Sheets("Tabelle2")
For a = 1 To 9
For b = 1 To 50
For Zufalldurch = 1 To Round(Int((50 - 1 + 1) * Rnd + 1), 0)
zahl = Round(Int((Tab1.Cells(65000, a).End(xlUp).Row - 2 + 1) * Rnd + 2), 0)
Next Zufalldurch
Tab2.Cells(b+1, a) = Tab1.Cells(zahl, a)
Next b
Next a
Set Tab1 = Nothing
Set Tab2 = Nothing
Application.DisplayAlerts = True
End Sub


Gruss
Tino

Anzeige
AW: Zufallsgenerator
14.11.2007 01:54:49
Tino
Hallo,
hab es vergessen umzustellen.
mach aus der Zeile For a = 1 To 9 dieses For a = 1 To 20
wegen den 20 Produktgruppen.
Gruss
Tino

AW: Zufallsgenerator
14.11.2007 01:45:03
Niki
Hallo
probier es mal mit folgendem Code:
Const auftragsnummern = 10000 ' hier kannst du einstellen wieviel auftragsnummern zurverfügung stehen
Const produkte = 20 'max. soviel stellen wie bei stellen_prod eingestellt
Const stellen_prod = 3 'wie die Produktnr. angezeigt wird z.B. 3 = XXX oder 4 = XXXX
Const auf_pro = 50 'wieviele Auftragsnummern pro Produkt vergeben werden sollen
Const Quellsheet = "Tabelle1" 'Auf diesem Sheet stehen deine Auftragsnummern die vergeben werden können
Const Zielsheet = "Tabelle2" 'Auf diesem Sheet stehen am Ende deine Produkte mit Auftragsnummern

Sub Zufall_Auftragsnummern()
For d = 1 To stellen_prod
füll = füll + "0"
Next
c = auftragsnummern
[a:a].Select
Selection.Copy
[b:b].Select
ActiveSheet.Paste
Randomize
Worksheets(Zielsheet).Activate
Sheets(Zielsheet).[1:1].Select
Selection.NumberFormat = "@"
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
Worksheets(Quellsheet).Activate
Sheets(Zielsheet).Range("a1").Value = "Produkt"
For a = 1 To auf_pro
Sheets(Zielsheet).Cells(a + 1, 1).Value = "Auftragsnr. " & a
Next
[a:a].EntireColumn.AutoFit
For produkt = 1 To produkte
Sheets(Zielsheet).Cells(1, produkt + 1).Value = Left(füll, stellen_prod - Len(produkt))  + _
LTrim(Str(produkt))
For auftragsnr = 1 To auf_pro
b = Fix(Rnd * c) + 1
Sheets(Zielsheet).Cells(auftragsnr + 1, produkt + 1).Value = Cells(b, 2).Value
Cells(b, 2).Select
Selection.Delete Shift:=xlUp
c = c - 1
Next
Next
Worksheets(Zielsheet).Activate
End Sub


!!!!!Achtung!!!!!
geht davon aus das Spalte "B" auf Quellsheet frei ist.
Ansonsten Zeile [b:b].Select so abändern das eine frei Spalte benannt wird z.B. [c:c].Select
Niki

Anzeige
AW: Zufallsgenerator
14.11.2007 02:19:33
Niki
noch was vergessen vergibt jede Auftragsnr. nur einmal.
Niki

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige