Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zufallsgenerator

Forumthread: 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

Anzeige

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

Anzeige
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
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige