ich gebe jetzt auf! Dies ist der letzte Post. Du solltest mal einen Excel-Grundkurs machen. Jetzt hast du "Lars Lehm" und "LarsLehm" (mit und ohne blank). Das passt halt nicht. Du musst überall die gleichen/identischen Namen verwenden!
19.11.2024, 13:23 (Dieser Beitrag wurde zuletzt bearbeitet: 19.11.2024, 13:25 von ws-53.)
Anbei eine Version, bei welcher der Spielplan und die Rangliste per Power Query erzeigt werden. Dabei führen auch komplett identische Gesamtergebnisse zur Ranggleichheit.
19.11.2024, 20:29 (Dieser Beitrag wurde zuletzt bearbeitet: 19.11.2024, 20:29 von Schmerzspender2000.)
Grüße gehn raus an Sigi!
Danke für den Hinweis! Das klappt jetzt. Ich weiß, es ist nicht einfach mit den Anfängern hier, aber trotzdem danke für die Geduld!
Für alle ans Ende Scrolle: Hier die Lösung: Badminton Turnier: Jeder gegen jeden Erstes Blatt Namen eingeben Zweites Blatt Spielstände eintragen Drittes Blatt Ligaansicht.
Hier das Makro, wenn das jemand einsehen möchte:
Code:
Sub GeneratePairings() Dim playerCount As Integer Dim i As Integer, j As Integer Dim row As Integer Dim playerRange As Range Dim cell As Range
' Spielerbereich festlegen (fix auf Zeilen 2 bis 45) Set playerRange = Sheets("Spielerübersicht").Range("D2:D45") ' Spalte D für Turniernamen verwenden
' Spieleranzahl zählen (nur nicht-leere Zellen in Spalte D) playerCount = 0 For Each cell In playerRange If Trim(cell.Value) <> "" Then playerCount = playerCount + 1 End If Next cell
' Zielblatt und Zelle für die Paarungen festlegen Dim pairingSheet As Worksheet Set pairingSheet = ThisWorkbook.Sheets("Turniermodus")
' Alte Paarungen löschen (nur Spalten C und D, damit Spalte B für Datum bleibt) pairingSheet.Range("C3:D1000").ClearContents
' Paarungen erstellen row = 3 ' Startzeile für die Paarungen (unterhalb der Kopfzeile) For i = 2 To playerCount + 1 For j = i + 1 To playerCount + 1 ' Spieler 1 und Spieler 2 aus der Spielerübersicht (Spalte D) Dim player1 As String, player2 As String player1 = Trim(Sheets("Spielerübersicht").Cells(i, 4).Value) ' Spalte D für Spieler 1 player2 = Trim(Sheets("Spielerübersicht").Cells(j, 4).Value) ' Spalte D für Spieler 2
' Nur Paarungen eintragen, wenn Spieler 1 und Spieler 2 gültige Namen haben If player1 <> "" And player2 <> "" Then pairingSheet.Cells(row, 3).Value = player1 ' Spieler 1 in Spalte C pairingSheet.Cells(row, 4).Value = player2 ' Spieler 2 in Spalte D row = row + 1 ' Nächste Zeile End If Next j Next i
' Nachricht mit der tatsächlichen Spieleranzahl MsgBox "Paarungen für " & playerCount & " Spieler wurden erstellt!" End Sub
Es dankt der Spender
@ ws-53 das sieht interessant aus. So wie ich das verstehe kommt das dann ohne Makros aus. Habe ich noch nie was von gehört. Wie starte ich diese Power Query? Also wenn ich jetzt Spieler hinzufüge, muss ich ja die Daten irgendwie aktualisieren. Wie mache ich das?
19.11.2024, 21:29 (Dieser Beitrag wurde zuletzt bearbeitet: 19.11.2024, 21:29 von ws-53.)
Cursor iwo in die Tabelle > rechte Maustaste > Aktualisieren.
Dann musst du aber vorher oder nachher alle Ergebnisse löschen, da diese ja nicht zu den neuen Paarungen passen.
Unter > Daten > Abfragen und Verbindungen siehst du alle Abfragen, die du zur Bearbeitung öffnen kannst. In einer Abfrage kannst du dann von oben nach unten alle Schritte der Reihe nach anklicken, um zu sehen was passiert.
Immer wenn du neue Ergebnisse eingetragen hast, kannst du dann die Rangliste aktualisieren.
Folgende Änderungen habe ich in der aktuellen Version durchgeführt:
Bei der Bestimmung der Ranglistenpositionen hatte ich noch nicht alle notwendigen Kriterien berücksichtigt. Im Tabellenblatt "Rangliste" werden nun alle Kriterien genannt.
Weiterhin habe ich nun vorgesehen, das während des Turniers Spieler ein- und aussteigen können. Neue Spieler werden dann nach einer Aktualisierung in den Spielplan aufgenommen und noch nicht gespielte Matches, von ausgestiegenen Spielern, aus dem Spielplan entfernt. Somit werden bereits durchgeführte Matches, von ausgestiegenen Spielern, weiterhin in der Rangliste berücksichtigt. Die Zeitpunkte für Ein-/Ausstieg können terminiert werden.
Soll ein neues "Jeder gegen jeden" Turnier müssen alle Datenzeilen des Spielplans einmal manuell gelöscht werden.
Nach jeder nachträglichen Änderung der Teilnehmer und Aktualisierung des Spielplans, ändern sich dann auch die Spielnummern. Diese können somit nicht als Auswertungskriterium genutzt werden.
Der nachträgliche Ein-/Ausstieg hat den Vorteil, dass neue Vereinsmitglieder in das laufende Turnier einsteigen können, und Mitglieder, die aus iwelchen Gründen nicht mehr teilnehmen können/wollen, nicht mehr als noch mögliche Paarungen gezeigt werden.