Ausgabe/Sortierung VBA-Array
28.01.2021 09:07:46
Hector
konte schon einiges an Informationen / Hilfen aus diesem Forum sammeln, habe jetzt aber ein Problem an dem ich verzweifle.
Für ein Kartenspiel, das wir (außerhalb der Pandemie) regelmäßig spielen mache ich eine Excel-Liste mit VBA, welche die jeweiligen Ergebnisse dokumentiert.
Für die Ermittlung der Rangfolge (1ter Platz, 2ter Platz, usw) habe ich ein (eindimensionales) Array aus dem ich die Plätze sortieren möchte.
Folgende Bedingungen sind sichergestellt.
1) max 6 Spieler / Ergebnisse (im Array 1-6). Es können ggfs. aber auch weniger Spieler sein, dann sind die jeweiligen letzten Einträge im Array = ""
2) das Array ist bereits absteigend sortiert, RangfolgeArray(1) ist der höchste Wert
Mein Problem ist nun, dass die Spieler auch identische Ergebnisse haben können und somit dann den gleichen Platz belegen sollen, genau dieses möchte ich dann ausgeben
Beispiel
Spieler_4 30
Spieler_1 20
Spieler_2 20
Spieler_3 20
Spieler_6 10
Spieler_5 -10
Das Ergebniss sollte dann etwa so aussehen
Platz1 - Spieler_4
Platz2 - Spieler_1
Platz2 - Spieler_2
Platz2 - Spieler_3
Platz2 - Spieler_6
Platz3 - Spieler_5
Ich habe folgende For-Schleife(n) hänge aber total an den Ausgaben, da mir die Ergebnisse immer doppelt oder auch falsch ausgegeben werden.
Dim i As Integer, j As Integer
Dim P
For i = 1 To 6
For j = i + 1 To 6
If RangfolgeArray(i) > RangfolgeArray(j) Then
P = "Platz" & (i)
Debug.Print P & " Durchlauf(i): " & (i)
Debug.Print P & " Durchlauf(j): " & (j)
'Exit For
ElseIf RangfolgeArray(i) = RangfolgeArray(j) Then
P = "Platz" & (i)
Else
P = "Platz" & (j)
End If
Next j
Next i
Hat jemand ein Idee, wie ich die Schleife umbauen muss, oder wo ich die Ausgaben einbauen muss, dass ich ausschliesslich jeden Platz einmal erhalte?
Vielen Dank im Voraus und Viele Grüße
Hector