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

Zufallszahlen

Zufallszahlen
08.10.2008 12:24:39
Hirsch
Hallo,
ich habe folgende Situation .
Für eine Schulungsveranstaltung haben sich 6 Teilnehmer angemeldet.
Bei jedem Termin können 4 Personen teilnehmen.
jeder Teilnehmer muss 12 Termine wahrnehmen.
Dies bedeutet dass 18 Schulungstermine angeboten werden müssen.
Jetzt meine Frage, gibt es eine Möglichkeit, per Zufallszahl oder anderer Excelformeln,
den Teilnehmern jeweils 12 Termine aus den 18 Terminen nach dem Zufallsprinzip zuzuweisen.
Es wäre schön wenn jemand eine Lösung hierfür hätte, da sich diese Situation in veränderter Form oft stellt und die manuelle Verteilung mühsam ist.
Vielen Dank im Voraus
Eugen

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

Betreff
Datum
Anwender
Anzeige
AW: Zufallszahlen
08.10.2008 15:13:13
Peter
Hallo Eugen,
so könnte es gehen


Option Explicit
Public Sub Zufall()
Const iMax = 18      ' die maximale Anzahl der zu generierenden Rnd-Zahlen
Dim iIndex            As Integer  ' For/Next Schleifen Index & Index für den Array
Dim aTemp()           As Variant  ' der temporäre Array
Dim iRndZahl          As Integer  ' die erzeugte Zufallszahl zwischen 1 und iMax
Dim rZelle            As Range    ' die Ausgabe-Zelle
Dim iSpalte           As Integer  ' die Teilnehmer Spalten
   For iSpalte = 1 To 6           ' die 6 Teinehmer
'                                 ' die 18 Termine
      aTemp = Array(1, "07.10.2008", "08.10.2008", "10.10.2008", "14.10.2008", _
      "16.10.2008", "20.10.2008", "22.10.2008", "23.10.2008", "24.10.2008", "27.10.2008", _
      "28.10.2008", "29.10.2008", "03.11.2008", "04.11.2008", "05.11.2008", "10.11.2008", _
      "11.11.2008", "12.11.2008")
      iIndex = iMax    ' iMax in ein Arbeitsfeld speichern
      Randomize Timer  ' initialisiert den Zufallszahlengenerator
'         es wird nur eine Auswahl, nämlich 12 Termine wiedergegeben !
      For Each rZelle In Range(Cells(2, iSpalte), Cells(13, iSpalte))
         iRndZahl = Int((iIndex * Rnd) + 1) ' eine Zufallszahl zwischen 1 und iMax
         rZelle.NumberFormat = "dd.mm.yyyy"
         rZelle.Value = CDate(aTemp(iRndZahl)) ' die Zelle mit dem generierten Datum füllen
         aTemp(iRndZahl) = aTemp(iIndex)  ' ersetze das gezogene Datum durch das Element iMax
         iIndex = iIndex - 1              ' vermindere iMax um eins
      Next rZelle
      Range(Cells(2, iSpalte), Cells(13, iSpalte)).Sort _
         Key1:=Cells(2, iSpalte), Order1:=xlAscending, _
         Header:=xlNo, OrderCustom:=1, _
         MatchCase:=False, Orientation:=xlTopToBottom
   Next iSpalte
End Sub 


Gruß Peter
Anzeige
AW: Zufallszahlen
08.10.2008 16:22:00
Hirsch
Hallo Peter,
ich bin ja leider kein VBA Freak.
Habe dein Makro mal eingegeben, bekomme aber immer eine Fehlermeldung, "Fehler beim Kompilieren: Keine zuweisung an Datenfeld möglich"
Trotzdem Danke
Eugen
AW: Zufallszahlen
08.10.2008 15:59:00
Hirsch
Hallo Ralf,
bin leider damit nicht klar gekommen, aber mit der Lösung von WF, klappt das.
Danke Eugen
Teilnehmer nicht per Zufall sondern per Logik
08.10.2008 15:44:25
WF
Hi Eugen,
in A1 bis A6 stehen die Teilnehmer
in C9 bis C12 stehen die Zahlen 1 bis 4
in D9 steht =WENN(C9=6;1;C9+1)
D9 bis T12 kopieren
Die Zeilen 9 bis 12 dann ausblenden.
In C1 bis T1 stehen die Schulungsnummern 1 bis 18.
In C2 steht =INDEX($A$1:$A$6;C9)
C2 bis T5 kopieren
Salut WF
Anzeige
AW: Teilnehmer nicht per Zufall sondern per Logik
08.10.2008 15:58:02
Hirsch
Hallo WF,
deine Lösung ist zwar etwas aufwendiger zum eingeben, funktioniert aber prima.
Danke
Eugen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige