237 Aufrufe
Gefragt in Tabellenkalkulation von addeguddi Experte (2.6k Punkte)
Halo und guten Tag an das Forum,

Es geht immer noch um ein Dartspiel. Habe wieder einmal ein Problem versuche schon seit Tagen über eine Formel diese zu lösen doch ich bekomme es nicht hin. Denke das es über VBA gehen könnte aber hier sind meine Kenntnisse nicht berauschend.

Da ich diese Datei total verändert habe und nach Würfen die Reihenfolge der Spieler ermittle sollte bei überwerfen die nächst höhere Wurfzahl übernommen werden.

Bei einem Spiel bis  301 kann man mit 6 Wurf das Spiel beenden bei 501 mit 9 Wurf.  

Beispiel: Spieler 1)  Wurf 1, 2 und je 60 = 180 Rest 121 Wurf 4 = 60, Wurf 5 = 21 Rest 40 nun werfe ich anstatt 40 die 60 ist gleich überworfen der Restwert bleibt bestehen, also 180, und die Wurfanzahl bleibt bei DREI stehen und hier sollte nun Wurf 6 übernommen werden damit wird veranlasst das Spieler 2 am Wurf ist usw.

2tes Beispiel: wenn der der Spieler bis Wurf 6 insgesamt Punkte von 251 also Rest 51 und der Spieler in 8 ten Wurf das Spiel beendet soll die Zahl 8 als Wurf erscheinen.

Also wenn Überworfen  letzte Wurf um 3 erhöhen bei Checkout die Anzahl der würfe unverändert.

Habe hier ein Befehl in VBA und denke das hier etwas verändert werden müsste.

'Würfe der Runde auf Null setzen, wenn überworfen
If bUeberw = True Then
  For i = 1 To Cells(lngSZeile, lngWSpalte).Value
    Cells(lngWZeile, lngSpalte + Cells(lngSZeile, lngWSpalte).Value - i) = 0
  Next i
  
End If

In der Hoffnung auf eine Lösung verbleibe ich wartend auf eine Nachricht.

Gruß Adde

8 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Adde,

so einfach ist es leider nicht. Lade doch mal deine Tabelle hoch.

Gruß

M.O.
0 Punkte
Beantwortet von addeguddi Experte (2.6k Punkte)

Schönen guten morgen M.O.

vielen Dank für deine Nachricht.

Kurze Info für dich. Habe ein paar Eingaben gemacht für 2 Spieler, Spieler 1, Rainer wäre jetzt am Wurf und benötigt nur noch 20 Punkte und hat bisher 6 Würfe dafür gebraucht  sollte er jetzt mit dem 7 Wurf die 20 treffen, wäre das Spiel zu Ende. Nun würft er aber nicht 20 sondern 25, hat er sich überworfen. Nun das was ich gerne erreichen wollte und es nicht hin bekomme. Je nach Anzahl der Würfe die man braucht beim überwerfen auf die nächst höhere Zahl erhöht werden. Beispiel:1) Jetzt müsste aus der Anzahl Würfe 6 eine 9 erscheinen. so müsste ich bis Wurf 9 klicken damit Spieler 2 erscheint. Beispiel 2)10,11 die Wurfzahl  auf 12 erhöht werden das um auf  13,14 auf 15 , fortlaufend auf 18, 21  24, 27 also immer 3 mehr als die Zahl .

Habe mit letzte nicht leere Zelle probiert. Zeigt ja beim überwerfen die 0 an und ich dachte ist wenn 0 dann Wurf + 3 aber das ging auch nicht.

Hoffe, du verstehst es was ich meine 

https://filehorst.de/d/egiFgBsI

Gruß Adde

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Adde,

ich glaube, dass ich dein Problem verstanden habe. Ich schaue mir mal deine Tabelle an und melde mich dann wieder.

Gruß

M.O.
+1 Punkt
Beantwortet von m-o Profi (22.8k Punkte)

Hallo Adde,

ich bin doch schneller dazu gekommen, mir die Tabelle anzuschauen. Ich habe mal in der Tabelle für das 2er Spiel das BeforeDoubleClick geändert. Schau mal, ob das so funktioniert, wie du das willst: Download Beispieldatei

Gruß

M.O.

0 Punkte
Beantwortet von addeguddi Experte (2.6k Punkte)
Hallo M.O.

erst einmal vielen Dank für deine Bemühung.

Habe VBA angeschaut und gesehen was du verändert hast. Müsste eventuell bei LngWspalte wie bei Zeile der Eintrag der würfe ermitteln irgendeine Zahl stehen?

Leider klappt es nicht ganz. Habe es getestet. wenn Spieler 2 sich überwürft funktioniert es, sowie sich Spieler 1 überwürft bleibt die Anzahl der würfe unverändert. Beispiel: Spieler 1 Restpunkte 13. Anzahl Würfe 21 jetzt Wurf 22 würft anstatt 13 die 15. bleibt die 21 stehen müsste eigentlich auf 24 Würfe springen klappt leider nicht.

Vielleicht kanns du das nochmals prüfen. Danke für deine Bemühungen im voraus.

Gruß Adde
0 Punkte
Beantwortet von addeguddi Experte (2.6k Punkte)
Hallo M.O.

noch mal ich, habe nochmals getestet und festgestellt: Beispiel: Spieler 1 hat Restunkte von 36 und 12 Würfe und ich klicke auf 40 also 13 Wurf ändert sich nichts. Klicke ich auf eine Zahl die kleiner ist als Rest 40 und dann auf 40 dann erhöht sich die Wurfanzahl von 12 auf 15 so wie es sein sollte wenn ich schon im 13 Wurf mich überwerfe.

Vielleicht hilft dir das etwas weiter.

Gruß Adde
+1 Punkt
Beantwortet von m-o Profi (22.8k Punkte)

Hallo Adde,

ändere den Code mal wie folgt ab:

'----- ACHTUNG! Hier Änderung ----
'Anzahl Würfe erhöhen
If bUeberw = False Then
    'falls nicht überworfen, dann normal erhöhen
    Cells(lngSZeile, lngWSpalte) = Cells(lngSZeile, lngWSpalte).Value + 1
   Else
    'falls überworfen, dann auf das nächste Vielfache von drei erhöhen
    Cells(lngSZeile, lngWSpalte) = 3
End If
'--- Änderung Ende

Bei meinen Tests hat es jedenfalls geklappt.

Gruß

M.O.

0 Punkte
Beantwortet von addeguddi Experte (2.6k Punkte)
Hallo M.O.

vielen Dank für deine Antwort und Hilfe. Melde mich erst, jetzt da ich 3 Tage in Hamburg war. Ich habe es umgesetzt nun funktioniert es. Ohne dich würd ich das nie schaffen.

Danke

Gruß Adde
...