45 Aufrufe
Gefragt in Tabellenkalkulation von addeguddi Experte (2.6k Punkte)
Hallo und einen schönen Tag wünsche ich euch.

Habe mir ein VBA erstellt aber stoße hierbei auf meine Grenzen. Es geht darum dass wenn der Rest In Zelle A12 oder I12 Teilbar ist und ich Klicke in die davor gesehene Zellen, das Sind für Spieler 1 die Zellen C3:C22 und B24, und für Spieler 2 die Zellen F3:F24 und G24, klappt bis dahin alles gut, Da aber auch einige Zahlen in den Zellen B3:B24 für Spieler 1 und für Spieler 2 in F3:F24 durch 2 Teilbar sind und ich darauf klicke beendet er das spiel sollte aber das Spiel nicht beenden sondern die Zahl in Zelle A12 für Spieler 1 und für Spieler 2 die Zelle I12 auf den alten Wert Je nach dem wer am Wurf ist, zurücksetzen. Ich weiß leider nicht weiter, was ich da noch machen muss daher wende ich mich an euch die viel mehr Erfahrung haben als ich in VBA.

Das ist mein VBA, das ich aus verschiedenen VBAS zusammengesetzt habe.

Sub DoppelOutPruefen()

    Dim ws As Worksheet

    Dim spieler1Rest As Long

    Dim spieler2Rest As Long

    Dim doppelZelle As Range

   

    ' Setzen Sie hier den Arbeitsblattnamen ein

    Set ws = ThisWorkbook.Sheets("Darts")   

    ' Lesen Sie die Werte aus den Zellen A12 und I12

    spieler1Rest = ws.Range("A12").Value

    spieler2Rest = ws.Range("I12").Value   

    ' Prüfen Sie die Bedingungen für Spieler 1

    If spieler1Rest >= 2 And spieler1Rest <= 40 Or spieler1Rest = 50 Then

        Set doppelZelle = ws.Range("C3:C22")

        If doppelZelle.Value = 1 And ws.Range("B24").Value = 50 Then

            ' Doppel Out für Spieler 1

        Else

            ' Kein Doppel Out oder überworfen

            ws.Range("A12").Value = spieler1Rest ' Stellen Sie den alten Wert wieder her

        End If

    End If   

    ' Prüfen Sie die Bedingungen für Spieler 2

    If spieler2Rest >= 2 And spieler2Rest <= 40 Or spieler2Rest = 50 Then

        Set doppelZelle = ws.Range("G3:G22")

        If doppelZelle.Value = 1 And ws.Range("F24").Value = 50 Then

            ' Doppel Out für Spieler 2

        Else

            ' Kein Doppel Out oder überworfen

            ws.Range("I12").Value = spieler2Rest ' Stellen Sie den alten Wert wieder her

        End If

    End If

End Sub

Gruß Adde

Deine Antwort

Dein angezeigter Name (optional):
Datenschutz: Deine Email-Adresse benutzen wir ausschließlich, um dir Benachrichtigungen zu schicken. Es gilt unsere Datenschutzerklärung.
Anti-Spam-Captcha:
Bitte logge dich ein oder melde dich neu an, um das Anti-Spam-Captcha zu vermeiden.
...