Exceltabelle für Badmintonturnier: Jeder gegen jeden
#21
Hallo,

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!


Gruß Sigi
Antworten Top
#22
Anbei eine Version, bei welcher der Spielplan und die Rangliste per Power Query erzeigt werden. Dabei führen auch komplett identische  Gesamtergebnisse zur Ranggleichheit.


Angehängte Dateien
.xlsx   cef - Exceltabelle für Badmintonturnier - Jeder gegen jeden (PQ).xlsx (Größe: 31,68 KB / Downloads: 6)
Antworten Top
#23
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?
Antworten Top
#24
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.
Antworten Top
#25
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.


Angehängte Dateien
.xlsx   cef - Exceltabelle für Badmintonturnier - Jeder gegen jeden (PQ) v2.xlsx (Größe: 44,89 KB / Downloads: 10)
Antworten Top
#26
Merci

Eine Sache der Praktikabilität noch...
Ein Ergebnis eintragen bei 25 Spielern. Ich verwende die Suchfunktion und suche dann nach dem Vornamen. Das kann dann schon recht lange dauern bis man die Partie gefunden hat. Gibt es da nen clevereren Ansatz anstannt Strg+f?

Es dankt
der Spender
Antworten Top
#27
Ich habe mal in meine sehr komfortable PQ-Variante, die du vermutlich nicht benutzt eine Farbmarkierung eingebaut, die du zum filtern benutzen kannst. Dabei ist es egal, nach welchen Namensbestandteil du suchst und ob dieser in in "Spieler 1" oder "Spieler 2" enthalten ist.


Angehängte Dateien
.xlsx   cef - Exceltabelle für Badmintonturnier - Jeder gegen jeden (PQ) v2.xlsx (Größe: 42,88 KB / Downloads: 2)
Antworten Top
#28
Ich habe die Farbmarkierung, die zum Filtern benutzt wird, nun noch etwas erweitert.

Du kannst nun zusätzlich auswählen, ob zum gesuchten Spieler "alle", "offene" oder "gespielte" Matsches markiert werden sollen.

Weiterhin habe ich für die Filteraktionen 2 Buttons eingefügt und diese mit entsprechenden Makros verknüpft. Das ist vom Handling einfacher, als die Spaltenfunktionen auszuführen.

Und ereignisgesteuert wird nun bei einer Änderung der Filterauswahl, Die Filterung sofort ausgeführt, wenn vorher schon ein Filter aktiv war.

Die Makros sind auch als Text im Tabellenblatt "VBA Codes" enthalten.


Angehängte Dateien
.xlsm   cef - Exceltabelle für Badmintonturnier - Jeder gegen jeden (PQ) v2.xlsm (Größe: 61,79 KB / Downloads: 5)
Antworten Top
#29
   
@ws-53
Ähm... großen Dank. Kann ich dir irgendeinen Obulus überweisen? Das sieht schon sehr fantastisch aus. Ich scheitere allerdings an der Bedienung :D

1.) Fritz und Henrich haben bei Rang 3, bei Heinrich wird dann kein Rang angezigt
2.) Was macht tbl-Ergebnisspalten?
3.) In der Rangliste tauchen erst Spieler auf, wenn sie ein Spiel gemacht haben?
4.) Wie werden die Spiele nach der Eingabe der Spielernamen generiert? Über Rechtsklick aktualisieren?
5.) Habe noch einen Spieler Erik hinzugefügt und aktualisiert, dann Fehlermeldung:
6.) Manuelle Sicherung ist zum händischen eintragen der Erggebnisse?

Schon mal 1000 Dank 35 

Es dankt
der Spender
Antworten Top
#30
1.) Fritz und Henrich haben bei Rang 3, bei Heinrich wird dann kein Rang angezigt
Weil, aus meiner Sicht besser erkennbar, wird bei Ranggleichheit per BF nur das Erste auftreten gezeigt

2.) Was macht tbl-Ergebnisspalten?

In der Abfrage "Spielplan" müssen ja auch die Spalten für die Ergebnisse erzeugt werden. Da habe ich halt den Weg gewählt, diese als Tabelle anzufügen.

3.) In der Rangliste tauchen erst Spieler auf, wenn sie ein Spiel gemacht haben?
    JA

4.) Wie werden die Spiele nach der Eingabe der Spielernamen generiert? Über Rechtsklick aktualisieren?
Ja: Cursor iwo, in die Tabelle  > rechte Maustaste > Aktualisieren

5.) Habe noch einen Spieler Erik hinzugefügt und aktualisiert, dann Fehlermeldung:

Von Cobol und ABAP bin ich es gewohnt, dass sobald die Erste if-Bedingung nicht erfüllt wird, der Rest nicht mehr geprüft wird.

Durch Änderung von:
If Target.Address = "$D$1" And Target.Value = "" And Status_Filter = "aktiv" Then
   Call reset_Filter
   Exit Sub
End If

auf:
    If Target.Address = "$F$1" Then
       If Target.Value <> "" And Status_Filter = "aktiv" Then
          Call set_Filter
          Exit Sub
       End If
    End If

Konnte ich das Problem beseitigen.

6.) Manuelle Sicherung ist zum händischen eintragen der Erggebnisse?

Dieses Tabellenblatt kann gelöscht werden. Das hatte ich mir nur für den Fall angelegt, dass wenn beim ändern und testen, die bereits erfassten Dummyergebnisse mal verlorengehen, ich diese wieder in den Spielplan kopieren kann.


Da ich grundsätzlich damit unzufrieden war, dass nach Änderungen, an der Spielerliste, die Spielnummern immer wieder neu generiert werden, habe ich dies dahingehend geändert, dass nun einmal vergebenen Spielnummern erhalten bleiben. Somit entstehen jetzt Lücken, wenn Spieler vorzeitig aussteigen und neue Nummern, wenn Spieler nachträglich hinzukommen. 

Über: Daten > Abfragen und Verbindungen, werden die alle in der Mappe enthaltenen Abfragen angezeigt, die du auch zur Bearbeitung öffnen kannst. Du siehst dann alle Schritte der Abfrage, deren M-Code in den meisten Fällen durch zusammenklicken entstanden ist. Der Cursor steht dann immer auf dem letzten Schritt der Abfrage und zeigt dir somit immer das Endergebnis der geöffneten Abfrage. Wenn du sehen willst, wie es zu dem Ergebnis kam, dann musst du nur, von oben nach unten, alle Schritte einzeln anklicken und siehst in den meisten Fällen sofort, was der jeweilige Schritt bewirkt hat.

Wenn du dich durch das öffnen einer Abfrage im Power Query-Editor befindest, dann werden dir bei Auswahl: Ansicht > Abfrageabhängigkeiten,  diese grafisch angezeigt.

Willst du mehr über das geniale Tool "Power Query" erfahren, findest du auf YouTube sehr viele Videos und bei entsprechender Suche auch PQ-Blogger die ihr Wissen zum besten geben. Auch wenn PQ seit der Version 2016 immer in Excel enthalten ist, kennen es viele noch nicht. Auch deshalb, wenn ich eine ganz spezielle Fragestellung habe, formuliere ich diese dann auf englisch, um eine Antwort zu finden.

Im übrigen habe ich, trotz miserabler Technik, auch rund 25 Jahre Badminton gespielt. Konnte dabei die miserable Technik oft durch meine  sehr gute Kondition (Rennrad fahren) kompensieren. Viele Jahre habe ich dabei in dem Verein gespielt, der aktuell den deutschen Meister stellt.


Angehängte Dateien
.xlsm   cef - Exceltabelle für Badmintonturnier - Jeder gegen jeden (PQ) v3.xlsm (Größe: 68,71 KB / Downloads: 5)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste