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

Zufallsgenerator

Zufallsgenerator
12.03.2009 18:04:46
Jakob
Hy,
Hab ein kleines Problem. Ich versuche gerade einen Zufallsgenerator zu progamieren der mir neben 64 Namen, welche von A1 bis A64 stehen, Zahlen von 1 bis 64 zuzuordnen. Dabei möchte ich keine Zahl doppelt haben.
danke im vorraus

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zufallsgenerator
12.03.2009 18:18:20
Hubert
Hi,
progamieren suggeriert, dass das mit VBA passieren soll, ist das richtig?
Geht sehr einfach mit eingebauten Funktionen, ist das eine Alternative?
mfg Hubert
AW: Zufallsgenerator
12.03.2009 21:59:02
Peter
Hallo Jakob,
noch eine Lösung:


Option Explicit
Public Sub ZahlZumNamen()
Dim lLetzte  As Long
Dim lZeile   As Long
   With ThisWorkbook.Worksheets("Tabelle1")
      Randomize Timer
      lLetzte = .Cells(Rows.Count, 1).End(xlUp).Row
      For lZeile = 1 To lLetzte
         Do
            .Range("B" & lZeile).Value = Int((lLetzte * Rnd) + 1)
         Loop Until Application.WorksheetFunction.CountIf(Columns(2), Range("B" & lZeile).Value) = 1
      Next lZeile
   End With
End Sub 


Gruß Peter
Anzeige
AW: noch zwei Zufälle
13.03.2009 00:10:24
Erich
Hi Jakob,
hier noch zwei Varianten, von Nepumuk und Uwe (ingUR):

Sub Zufallsliste5()     ' Zahlen 1 bis Anzahl ohne Wiederholungen, ingUR (Uwe) 04.12.2006
' www.herber.de/forum/archiv/824to828/t825988.htm
Const Anzahl = 64
Dim arrZ(1 To Anzahl) As Long, arrOK(1 To Anzahl) As Boolean
Dim ii As Long, iLosNr As Long
Randomize
For ii = 1 To Anzahl
Do
iLosNr = Int((Anzahl * Rnd) + 1)
If arrOK(iLosNr) = False Then arrZ(ii) = iLosNr: arrOK(iLosNr) = True
Loop Until arrZ(ii) > 0
Next
Cells(1, 2).Resize(Anzahl) = WorksheetFunction.Transpose(arrZ)
End Sub
' www.herber.de/forum/archiv/252to256/t255056.htm#255062
' www.herber.de/forum/archiv/676to680/t678590.htm#678719
' www.herber.de/forum/archiv/684to688/t685032.htm#685171
Sub Zufallsliste8()              ' von Nepumuk
Const Anzahl = 64
Dim ii As Long, arrZ(1 To Anzahl) As Long, jj As Long, zz As Long
For ii = 1 To Anzahl
arrZ(ii) = ii
Next ii
For ii = Anzahl To 1 Step -1
Randomize Timer
zz = Int((ii * Rnd) + 1)
jj = arrZ(zz)
arrZ(zz) = arrZ(ii)
arrZ(ii) = jj
Next ii
Cells(1, 2).Resize(Anzahl) = WorksheetFunction.Transpose(arrZ)
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige