Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

werte zufällig über einen bereich verteilen

1,922 views
Skip to first unread message

bert post

unread,
May 10, 2003, 8:05:32 AM5/10/03
to
hallo excel gurus,
für ein quiz möchte ich folgende tabelle erstellen. bereich: A1:T20. jede
der insgesamt 400 (20 x 20) zellen soll nun einen wert zwischen 1 und 400
erhalten. dabei sollen die werte zufällig über den bereich verteilt werden
und jeder wert soll nur einmal vergeben werden, damit am schluss alle werte
zwischen 1 und 400 in irgendeiner zelle vorhanden sind. wie kann ich das am
einfachsten lösen, ohne die werte manuell eingeben zu müssen.

mit bestem gruss
bert


Markus Hofer

unread,
May 10, 2003, 9:10:01 AM5/10/03
to

"bert post" <bert...@gmx.de> schrieb im Newsbeitrag
news:b9ipk6$9eh$1...@rex.ip-plus.net...
Ich würde in Spalte A die Werte 1-400 einfüllen, Spalte B von Zeile
1-400 mit der Funktion ZUFALLSZAHL() füllen, den gesamten Bereich über
Daten -> Sortieren -> Spalte B nach Spalte B sortieren und dann Spalte B
löschen. Der Rest ist dann allerdings Handarbeit.

lg, Mac

Melanie Breden

unread,
May 10, 2003, 10:15:00 AM5/10/03
to
Hallo Bert,

"bert post" schrieb:

dazu könntest du eine VBA-Rozedur verwenden.
Füge folgendes Makro im VBA-Editor in ein allgemeines Modul ein.
Starte es z.B. über Extras | Makro | Makros, oder weise es einer
Schaltfläche auf dem Tabellenblatt zu.

Sub VierhundertZahlen()
Dim rngArea As Range
Dim rngCell As Range
Dim intTMP As Integer
Dim rngFind As Range

Set rngArea = Range("A1:T20")
rngArea.ClearContents

For Each rngCell In rngArea
Do
intTMP = Int((400 * Rnd) + 1)
Set rngFind = rngArea.Find(intTMP)
Loop Until rngFind Is Nothing
rngCell = intTMP
Next rngCell
End Sub

--
Mit freundlichen Grüßen
Melanie Breden

_____________________
[Microsoft MVP für Excel]

Markus Hofer

unread,
May 10, 2003, 10:30:48 AM5/10/03
to
> Ich würde in Spalte A die Werte 1-400 einfüllen, Spalte B von Zeile
> 1-400 mit der Funktion ZUFALLSZAHL() füllen, den gesamten Bereich über
> Daten -> Sortieren -> Spalte B nach Spalte B sortieren und dann Spalte
B
> löschen. Der Rest ist dann allerdings Handarbeit.
>
> lg, Mac

und dann Makro:

Sub Matrix()
For i = 1 To 19
Range("A21:A40").Select
Selection.Cut
Range("A1").Select
ActiveCell.Offset(0, i).Range("A1").Select
ActiveSheet.Paste
Rows("21:40").Select
Selection.Delete Shift:=xlUp
Next
End Sub

Sicher nicht die schönste Lösung, aber praktikabel.

Melanie Breden

unread,
May 10, 2003, 10:46:20 AM5/10/03
to
Hallo Bert,

"Melanie Breden" schrieb:


>
> "bert post" schrieb:
> > für ein quiz möchte ich folgende tabelle erstellen. bereich: A1:T20. jede
> > der insgesamt 400 (20 x 20) zellen soll nun einen wert zwischen 1 und 400
> > erhalten. dabei sollen die werte zufällig über den bereich verteilt werden
> > und jeder wert soll nur einmal vergeben werden, damit am schluss alle werte
> > zwischen 1 und 400 in irgendeiner zelle vorhanden sind. wie kann ich das am
> > einfachsten lösen, ohne die werte manuell eingeben zu müssen.

die vorherige Prozedur war unter XL XP erstellt. Da vorherige Excel-Versionen
teilweise Probleme mit der Syntax haben, hier noch mal eine verbesserte Prozedur:
(funzt ab XL97)

Sub VierhundertZahlen()
Dim rngArea As Range
Dim rngCell As Range
Dim intTMP As Integer
Dim rngFind As Range

Set rngArea = Range("A1:T20")
rngArea.ClearContents

For Each rngCell In rngArea
Do

Randomize


intTMP = Int((400 * Rnd) + 1)

Set rngFind = rngArea.Find(intTMP, LookAt:=xlWhole)

Frank Arendt-Theilen

unread,
May 10, 2003, 4:20:27 PM5/10/03
to
Hallo Bert,
wie folgt:
auf dem Tabellenblatt 2:
Formel für Bereich A1:T20: =ZUFALLSZAHL()

auf dem Tabellenblatt 1:
Formel für den Bereich A1:T20: =RANG(Tabelle2!A1;Tabelle2!$A$1:$T$20)
OK!?

MfG Frank
_________________________________________________
Frank Arendt-Theilen, Microsoft MVP für Excel, Hameln
eMail: Thei...@t-online.de, Homepage: http://www.xl-faq.de

Bert Post

unread,
May 12, 2003, 4:32:39 AM5/12/03
to
hallo melanie, markus und peter,
herzlichen dank für die postings. es hat geklappt.

gruss bert


"bert post" <bert...@gmx.de> schrieb im Newsbeitrag
news:b9ipk6$9eh$1...@rex.ip-plus.net...

0 new messages