Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1276to1280
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

Button zum Mischen einer Liste

Button zum Mischen einer Liste
Michael
Hallo Leute,
da ich so in Netz nichts finden konnte, was für meine Bedürfnisse passt, bzw. ich starke Probleme bei der Einbindung hatte, bitte ich nun euch um Mithilfe:
Es geht um 16 Zahlen, die untereinander in einer Spalte A aufgelistet sind und auf möglichst simple Art und weise gemischt werden sollen. Das Ergebnis dieser Mischung soll dann in der benachbarten Spalte B direkt daneben ausgegeben werden.
Könnte man natürlich mit ZUFALLSZAHL oder ZUFALLSBEREICH lösen, bringt mir aber leider nichts, da die gemischte Liste direkt in einem Turnierbaum weiter verwendet wird. Der Weg über die Berechnungsoptionen (per manuelle Berechnung) hilft mir ebenfalls nicht weiter.
Ein Kern Problem wird auch sein, dass die Datei später in Turnieren auch von völlig Excel unerfahrenen Menschen verwendet werden könnte, weshalb die Lösung so Simpel wie es nur geht sein sollte.
Mein Gedanke fiel deshalb auf einen kleinen Button "Mischen!" neben den beiden Spalten. Wenn darauf geklickt wird, soll durchgemischt werden und fertig ;)
Damit es vielleicht etwas deutlicher wird, was ich eigentlich benötige, habe ich die Tabelle um die es geht mal hier im Forum hochgeladen:
https://www.herber.de/bbs/user/81711.xlsx
Könnt ihr mir hier weiterhelfen und einen solchen Button in VBA erstellen? Ich wäre euch ewig dankbar :)
PS.: Kleines Sahnehäubchen gibt es noch: Da nicht 100% fest steht, das der Turnierbaum auch immer mit 16 Leuten voll belegt ist, sondern auch mal nur 13,12 oder auch nur 9 antreten könnten, sollten Leerkämpfe möglichst vermieden werden. Das stelle ich mir lösungstechnisch so vor, dass direkt durch den Button die zufälligen Teilnehmer den passenden zeilen zugeordet werden. z.B.
Zufallsergebnis 1 - A1
Zufallsergebnis 2 - A3
Zufallsergebnis 3 - A5
..
Zufallsergebnis 8 - A15
Zufallsergebnis 9 - A2
Zufallsergebnis 10 - A4
Zufallsergebnis 11 - A6
..
Zufallsergebnis 16 - 16
Durch eine solche Verteilung würde vermieden, dass in der 2. Runde noch Begnungen mit Freilos(en) stattfinden. Wär genial wenn das auch noch funktioniert! :D
Bin gespannt auf eure Antworten
LG
Micha

AW: Button zum Mischen einer Liste
05.09.2012 12:37:48
Michael
Zu der Excel Datei ich angehangen hatte ich vergessen zu erwähnen, dass es um die Seite "Würfel" geht. Mir ist nichts viel besseres eingefallen... ;)
Die Begegnungen sind zu Testzwecken alle schon mit Ergebnissen eintragen, aber das seht ihr ja dann schon selbst =)

AW: Button zum Mischen einer Liste
05.09.2012 12:44:14
hary
Hallo Michael
Hier mal zum mischen. Du meinst in dem Blatt "Teilnehmer" oder? Gemischte Liste kommt wieder nach SpalteA.
https://www.herber.de/bbs/user/81714.xlsm
Fuer's Sahnehäubchen hab ich noch nichts.
gruss hary

AW: Button zum Mischen einer Liste
05.09.2012 13:32:42
Michael
Halle harry,
danke ersteinmal für die schnelle Antwort! Ich hatte mir den Button eher auf dem Blatt "Würfel" gedacht, aber von der Arbeitsweise sieht das schonmal sehr sehr gut aus. Die Ergebnisse können dann auf dem Blatt Würfel in die Spalte B. Ich probier's mir gerade mal eben selber noch so umzubauen.
Aber wie gesagt, danke auf jeden Fall erstmal!

Anzeige
AW: Button zum Mischen einer Liste
05.09.2012 13:40:39
hary
hallo Micheal
Dann so.

Private Sub CommandButton1_Click()
Dim vntList As Variant, vntTmp As Variant
Dim lngIndex As Long, lngRnd As Long
vntList = Range("A12:A" & Cells(Rows.Count, 1).End(xlUp).Row)
Randomize Timer
For lngIndex = 1 To UBound(vntList, 1)
lngRnd = Int((UBound(vntList, 1)) * Rnd + 1)
vntTmp = vntList(lngIndex, 1)
vntList(lngIndex, 1) = vntList(lngRnd, 1)
vntList(lngRnd, 1) = vntTmp
Next
Range("B12").Resize(UBound(vntList, 1), 1) = vntList
End Sub

gruss hary

AW: Button zum Mischen einer Liste
05.09.2012 13:41:05
hary
hallo Micheal
Dann so.

Private Sub CommandButton1_Click()
Dim vntList As Variant, vntTmp As Variant
Dim lngIndex As Long, lngRnd As Long
vntList = Range("A12:A" & Cells(Rows.Count, 1).End(xlUp).Row)
Randomize Timer
For lngIndex = 1 To UBound(vntList, 1)
lngRnd = Int((UBound(vntList, 1)) * Rnd + 1)
vntTmp = vntList(lngIndex, 1)
vntList(lngIndex, 1) = vntList(lngRnd, 1)
vntList(lngRnd, 1) = vntTmp
Next
Range("B12").Resize(UBound(vntList, 1), 1) = vntList
End Sub

gruss hary

Anzeige
AW: Button zum Mischen einer Liste
05.09.2012 13:51:09
Michael
Funktioniert super! Vielen vielen Dank!
Hast du ne Idee wie man das kleine Extra noch hinbekommen könnte?

AW: Button zum Mischen einer Liste
05.09.2012 14:09:35
fcs
Hallo Michael,
hier mein Vorschlag inkl. Algorithmus zur Vermeidung von Freilospaarungen in der 1. Runde.
Mein Makro benutzt die Spalten I und J im Blatt würfeln zum Speichern von Zwischenergebnissen.
https://www.herber.de/bbs/user/81715.xlsm
Gruß
Franz

AW: Button zum Mischen einer Liste
05.09.2012 14:48:48
hary
Hallo
Ging Ü50 Jahre ohne Sport. Hab keine Ahnung von 1. Runde/ Freilos geschweige von Sporttabellen.
gruss hary
Trotzdem Frage @ Franz
Wieso bekommt hier fast jeder Freilos? Wegen der Formel ist schon klar, aber ist das richtig so?
Wie gesagt kein Plan von Sport.
Ablaufplan
 CDEFGHI
14104Nachname 4, Vorname 41  0Freilos 
15101Nachname 1, Vorname 14  9Nachname 6, Vorname 6106
16108Nachname 8, Vorname 81  0Freilos 
17  Freilos0  1Nachname 5, Vorname 5105
18103Nachname 3, Vorname 312  0Nachname 9, Vorname 9109
19  Freilos0  1Nachname 10, Vorname 10110
20  Freilos0  1Nachname 2, Vorname 2102
21107Nachname 7, Vorname 71  0Freilos 

Tabellendarstellung in Foren Version 5.30


Anzeige
AW: Button zum Mischen einer Liste
05.09.2012 15:13:26
Michael
Weil es nur 9 Startnummern sind, die in einem 16er Turnierbaum verteilt werden. Das bedeutet 7/8 Begegnungen haben ein Freilos :) Ist so ziemlich der Worst-Case in Bezug auf Freilose bei nem 16er Turnierbaum. Wenns nur 8 Teilnehmer sind, greif ich eh auf nen 8er Turnierbaum zurück :) Sind es wiederum mehr als 16 Teilnehmer, bilde ich Pools, in denen die Endrunden Teilnehmer festgestellt werden.

AW: Danke....
05.09.2012 15:19:56
hary
Hallo Michael
... fuer's erklaeren. Mache die letzten Jahre weiterhin ohne Sport. ;-))
gruss hary

AW: Button zum Mischen einer Liste
06.09.2012 11:03:23
Michael
Also ich habe nun aus euren beiden Ansätzen was neues gebastelt und wollte das hier nur mal eben zur Verfügung stellen. Problem / Aufgabe ist hiermit offziell gelöst! Vielen Dank nochmal euch beiden!!

Private Sub CommandButton1_Click()
Dim vntList As Variant, vntTmp As Variant
Dim lngIndex As Long, lngRnd As Long, i As Long, j As Long
' -- Wirklich würfeln? Ganz sicher?
If MsgBox("Die Starter-Nummern jetzt in eine zufällige Reihenfolge bringen?", _
vbQuestion + vbOKCancel, "Würfeln") = vbOK Then
Range("B12:B27").ClearContents
vntList = Range("A12:A27")
' -- Zufallsliste generieren
For lngIndex = 1 To (UBound(vntList, 1) - 1) Step 2
lngRnd = Int((UBound(vntList, 1)) * Rnd + 1)
vntTmp = vntList(lngIndex, 1)
vntList(lngIndex, 1) = vntList(lngRnd, 1)
vntList(lngRnd, 1) = vntTmp
Next
' -- Zufallsliste von Leerzeilen säubern und in Spalte B schreiben
i = 1
j = 2
For lngIndex = 1 To UBound(vntList, 1)
If IsNumeric(vntList(lngIndex, 1)) And i 

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige