Keine Sorge die Datei ist dabei, ich konnte sie aufjeden Fall problemlos herunterladen.
Das mit Finish Vorschlag ist meiner Meinung nach ein relativ Grosses Problem, so wie du es momentan gelöst hast funktioniert es nur für Doubleout mit drei Darts in der Hand.
Und genau da fangen leider die Probleme an es müsste eine Riesige Tabelle angelegt werden, mit verschiedenen Vorschlägen für die verschiedenen Varianten. kleines Beispiel: 18 Punkte Rest können bei DoubleOut mit einem Pfeil ausschliesslich mit Double9 ausgecheckt werden, bei einem MasterOut wäre Tripple6 oder Double9 mögliche Varianten, bei OpenOut käme dann sogar noch Single18 dazu, vorausgesetzt man hat nur noch einen Pfeil in der Hand, wenn man noch zwei oder drei Pfeile in der Hand hat, werden die Möglichkeiten nochmal vervielfacht.
Wenn man also einen Vorschlag für ein Checkout machen will muss dabei die aktuelle Spielvariante berücksichtigt werden und ausserdem wie viele Pfeile noch in der Hand sind. Bei 50 Rest DoubleOut mit einem Pfeil in der Hand muss man DoubleBull spielen, wenn man aber noch zwei Darts in den Händen hält, würde ich eher 10 + Double20 oder 18 + Double16 spielen.
Es müsste also eine Tabelle dahinter stehen die für alle Drei CheckOut-Varianten (OpenOut, DoubleOut und Master Out) Drei Spalten (3 Darts, 2 Darts und 1 Dart) zur Verfügung stellt, es müssten also mindestens 9 Spalten sein, wenn evtl. für eine Variante sogar mehrere Lösungen angezeigt werden sollten, erhöht sich die Anzahl der Spalten entsprechend. Aus diesem Grund würde ich die Aktualisierung der Vorschläge auf jeden Fall nur am Ende der Aufnahme machen. Das wird sonst Datenhaltungstechnisch ziemlich schwierig, weil man ja dann nach jedem Pfeil wieder auf andere Daten zugreifen müsste, dies ist dann auch nicht mehr mit einem einfachen Sverweis lösbar. Man könnte auch entscheiden nur für die DoubleOut Variante Vorschläge anzuzeigen. Ich würde den Vorschlag auch nicht pro Spieler machen, sondern einfach für den aktiven Spieler, das würde ich wahrscheinlich dann auch direkt beim Restwert anzeigen, so ist nur eine Zelle dafür notwendig, ansonsten braucht es eine Zelle pro Spieler, was dann auch viel Aufwändiger wäre zu adressieren.
Dies mal so Grundsätzlich weshalb ich bisher in diese Richtung noch gar nichts gemacht habe.
Kannst du mir noch erklären, weshalb du den Code von Rest angepasst hast? so ist er nämlich nicht mehr wirklich brauchbar.
Mein ursprünglicher Code mit Kommentaren ergänzt:
Code: Alles auswählen
Sub Rest()
Dim Rest As Long
If aktiver_Spieler = 1 Then
Rest = Range("C2") - Range("I3") 'Dies wird ausgeführt wenn Spieler1 aktiv ist
Else
Rest = Range("C3") - Range("I3") 'Dies wird ausgeführt wenn Spieler1 nicht aktiv (Also Spieler2)
End If
Range("P3") = Rest
End Sub
Code: Alles auswählen
Sub Rest()
Dim Rest As Long
If aktiver_Spieler = 1 Then
Rest = Range("C2") - Range("I3") 'Dies wird ausgeführt wenn Spieler1 aktiv ist
Else
Rest = Range("C2") - Range("I3") 'Dies wird ausgeführt wenn Spieler1 nicht aktiv (Also Spieler2) _
'hast du so abgeändert, dass egel welcher Spieler am Spielen ist immer der Rest von Spieler1 angezeigt wird
End If
Range("P3") = Rest
'Hier hast du dann nochmal den gleichen Code für Spieler2 angelegt,
'dieser ist dann immerhin wieder für beide Spieler unterschiedlich
'Der Code ab hier ist aber völlig überflüssig
If aktiver_Spieler = 2 Then
Rest = Range("C3") - Range("I3")
Else
Rest = Range("C2") - Range("I3")
End If
Range("P3") = Rest
'Bei einer Erweiterung auf mehrere Spieler muss dies dann berücksichtigt werden,
'Dann gibt es aber auch kein Else mehr, sondern eine Anweisung pro Spieler.
End Sub
Eigentlich alles was auf dem Startfomular zu sehen ist möchte ich gerne noch in die Applikation einbinden. Ausnahmen WildCricket und Arround The Clock weiss ich noch nicht ob sie ausprogrammieren werde, deshalb sind sie auch grau dargestellt.Noch eine Frage kommt noch das Doppel in und Doppel out dazu?
Weshalb gibt es in Tabelle 2 (Liste mit Vorschlägen) zwei Spalten (A + D) in denen die gleiche Punktzahl steht und weshalb haben die Spalten keine Überschriften, damit man weiss welche Spalte wofür ist. Beispiel: Spalte B = DoubleOut, Spalte E = MasterOut.
Ich würde in dieser Tabelle Spalte E in Spalte C verschieben, und dann Spalte D + E löschen. Oder einfach Spalte C+D komplett entfernen, ergibt das gleiche Ergebnis.
Und weshalb hast du nochmal den Restwert für beide Spieler abgebildet, es sind ja von mir bereits beide Werte abgebildet, weshalb ein zweites mal darstellen?
Weitere Frage: Weshalb hast du die Grösse vom Startfomular geändert, jetzt ist Cricket nicht mehr ganz lesbar.
Macht euch mal Gedanken, wie wir das mit Vorschlägen handhaben wollen, ich kümmere mich bis dahin erst mal um Grundfunktionen.
Beste Grüsse aus dem Regen Erwin