Ich habe mich an Zufallszahl versucht, komme aber nicht weiter. Mir unterliefen Fehler in Form von Dopplungen (Teilnehmer besucht Tisch 2x).
https://www.herber.de/bbs/user/103468.xlsx
Sub Zufallsverteilung_88_Teilnehmer()
Dim TiNr, tz, k, Zahl, flg, wz 'Zaehler
With Worksheets("Zufallsliste (3)") 'Zufall 3
Start: 'Neustart bei endlos Wiederholung
.Range("C5:N84").ClearContents 'Zufall Tabelle
.Range("U5:AE105").ClearContents 'Hilfsliste 1
.Range("AH5:AQ105").ClearContents 'Hilfsliste 2
'Do Loop Schleife für 10 Runden
Do Until k = 10
k = k + 1 'k=Zaehler für Do Loop ; xAdr=Array mit Anf-Adressen
xAdr = Application.Choose(k, "C5", "C13", "C21", "C29", "C37", "C45", "C53", "C61", "C69", " _
C77")
xBer = .Range(xAdr).Resize(8, 12).Address
wz = 0 'Wiederholzaehler (endlos Schutz)
'Zufallsverteilung für Runde 1-10 (10 Blöcke)
For ze = 1 To 8: tz = 1 'Zeilen 1 - 8
For sp = 1 To 12 'Spalte C - N
'Tisch-Nr berechnen, mit Umrechnung ab ze > 4
If sp = 3 Or sp = 5 Or sp = 7 Or sp = 9 Or sp = 11 Then tz = tz + 1
If ze 1000 Then End
x = Int(89 * Rnd): flg = Empty
If x = 0 Or x > 88 Then GoTo rd1
'letzte Zahl manuell auswerten
Zahl = .[c120].Cells(1, k).Value
xx = .Range(xAdr).Cells(ze, sp)
If ze = 8 And sp = 11 Then _
If Zahl > 0 And Zahl
Sub vorprüfung: 'Prüfung auf doppelte Werte
' If Left(flg, 4) = "dopp" Then GoTo rd1
'Moderator über Shift Funktion setzen (mit "Ja" Prüfung)
If .Range(xAdr).Cells(ze, sp).Interior.ColorIndex > 1 Then
'war Teilnehmer bereits Moderator "Ja" ?
If .Range(TiLi).Cells(x, 1) = "Ja" Then GoTo rd1
'Moderater notieren in Runde: 1,3,5,7,9
If k = 1 Or k = 3 Or k = 5 Or k = 7 Or k = 9 Then
.Range(TiLi).Cells(x, 1) = "Ja" 'Moderastor "Ja"
.Range(xAdr).Cells(ze + 8, sp + 1) = x 'x-Wert
ElseIf k = 5 And sp = 10 Then Exit For
Next sp
Next ze
Loop
End With
Ende:
If NoMsg "No" Then MsgBox "alles gefüllt - Moderator Prüfung !!"
Exit Sub
'********* Sub-Programm Prüfung **********
'*** Vorerst deaktiviert (fehler in Auswertung)
vorprüfung: 'Prüfung auf doppelte Werte
Return
With Worksheets("Zufallsliste (3)")
'Prüfung auf dopppelten Tisch zum Teilnehmer
pBer = .Range(TiLi).Cells(x, 2).Resize(1, 10).Address
Set rFind = .Range(pBer).Find(What:=TiNr, LookAt:=xlWhole)
If Not rFind Is Nothing Then flg = "dopp T": Return
Return
'Prüfung auf dopppelte Person zum Teilnehmer
pBer = .Range(TNLi).Cells(x, 1).Resize(1, 10).Address
Set rFind = .Range(pBer).Find(What:=x, LookAt:=xlWhole)
If Not rFind Is Nothing Then flg = "dopp P"
Return
End With
End Sub
Sub Vorschlag
'Die Basiszahl für den Restwert muss geandert werden auf von 4656 auf 3916
.[m109].Value = 3916 '3916 'ges-Summe
'Randomise muss geaendert werden: (kopieren)
rd1: Randomize 'Teilnemer 1-88 (mit wiederholung)
x = Int(89 * Rnd): flg = Empty
If x = 0 Or x > 88 Then GoTo rd1
'letzte Zahl manuell auswerten
Zahl = .[c120].Cells(1, k).Value
xx = .Range(xAdr).Cells(ze, sp)
If ze = 8 And sp = 11 Then _
If Zahl > 0 And Zahl = 5 And sp = 10 Then Exit For
End Sub
Um 96 Teilnehmer zufällig in Gruppen von 8 Personen an 12 Tischen zu mischen, kannst Du die folgende Excel-Anleitung nutzen:
Excel-Datei erstellen: Öffne Excel und erstelle eine neue Datei. Benenne die erste Tabelle "Zufallsliste".
Namen eingeben: Trage die Namen der 96 Teilnehmer in Spalte A ein (z.B. A1 bis A96).
Zufallszahlen generieren: In Spalte B erstelle eine Zufallszahl für jeden Teilnehmer mit der Formel:
=RAND()
Ziehe die Formel bis zur Zeile 96.
Sortieren: Markiere die Namen und die Zufallszahlen. Gehe zu „Daten“ und klicke auf „Sortieren“. Wähle die Zufallszahlen zum Sortieren aus.
Gruppen bilden: Teile die Teilnehmer nach dem Sortieren in Gruppen von 8 auf. Du kannst die Gruppen in Spalte C bis N aufteilen, wobei jede Spalte einen Tisch darstellt.
Moderator festlegen: Bestimme für jede Runde, wer der Moderator ist. Du kannst dies in einer separaten Spalte festhalten.
Wechsel planen: Definiere, wie oft die Teilnehmer die Tische wechseln. In diesem Fall sind es 10 Runden.
Dopplungen bei den Teilnehmern: Wenn ein Teilnehmer mehrmals an den gleichen Tisch gesetzt wird, stelle sicher, dass Du die Zufallszahlen korrekt generierst und die Sortierung genau durchführst.
Fehlerhafte Anzahl an Teilnehmern: Achte darauf, dass die Anzahl der Namen in Spalte A genau 96 entspricht. Prüfe auch, ob Du versehentlich Leerzeilen hinzugefügt hast.
Laufzeitfehler 1004: Dieser Fehler kann auftreten, wenn das Makro in einer älteren Excel-Version nicht kompatibel ist. Achte darauf, die korrekte Excel-Version zu verwenden (z.B. Excel 2003 oder 2007).
Falls Du keine Zufallszahlen in Excel verwenden möchtest, kannst Du auch einen Namen mischen Generator online nutzen. Einfach die Namen eingeben und zufällig mischen lassen. Eine weitere Möglichkeit wäre, die Gruppenbildung manuell durchzuführen, was allerdings zeitaufwändiger ist.
Hier ist ein einfaches Beispiel, um die Gruppeneinteilung zu verdeutlichen:
Für den Druck von Namensschildern kannst Du die Teilnehmerliste so formatieren, dass sie auf DIN A4 passt. Verwende die Funktion „Drucken“ in Excel, um die Zahlen zum Ausdrucken 1-10 DIN A4 zu erstellen.
Nutze Makros, um den Prozess der Zufallsverteilung zu automatisieren. Dies kann die Zeit erheblich reduzieren und die Fehleranfälligkeit minimieren.
Berücksichtige bei der Gruppeneinteilung mit Präferenzen die Wünsche der Teilnehmer, falls vorhanden. Dies kann durch zusätzliche Spalten in deiner Excel-Datei erfolgen.
Überlege, ein Feedback-System einzuführen, um die Effizienz der Gruppeneinteilung in zukünftigen Veranstaltungen zu bewerten.
1. Wie kann ich die Anzahl der Teilnehmer ändern, wenn sie sich auf 88 reduziert?
Du musst die Zufallszahlen und die Gruppeneinteilung anpassen, indem Du die Anzahl der Namen in der Liste reduzierst und sicherstellst, dass alle Formeln aktualisiert werden.
2. Kann ich die Excel-Datei für zukünftige Veranstaltungen wiederverwenden?
Ja, Du kannst die Datei speichern und die Namen sowie die Anzahl der Tische anpassen. Die grundlegenden Formeln bleiben gleich.
3. Was mache ich, wenn ich die Excel-Version nicht kenne?
Überprüfe die Version in Excel unter „Hilfe“ > „Über Microsoft Excel“. Stelle sicher, dass Du eine Version hast, die Makros unterstützt, wie Excel 2003 oder 2007.
4. Wie kann ich eine Druckliste für die Teilnehmer erstellen?
Du kannst eine separate Tabelle erstellen, die alle notwendigen Informationen enthält, und diese dann drucken. Achte darauf, das Layout so zu gestalten, dass es auf DIN A4 passt.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen