173 Aufrufe
Gefragt in Tabellenkalkulation von addeguddi Experte (2.7k Punkte)

Hallo und einen schönen Tag,

suche folgende Lösung. wenn Ziel erreicht ist soll das Spiel zurück gesetzt werden. Bei manueller Eingabe in O22 funktioniert das zurücksetzen, doch wenn eine Formel hinterlegt ist nicht, das ist mein VBA. 

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo ErrorHandler
    Application.EnableEvents = False
    
    If Not Intersect(Target, Me.Range("O22")) Is Nothing Then
        Call Spiel_reset
    End If
    
CleanUp:
    Application.EnableEvents = True
    Exit Sub
    
ErrorHandler:
    MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
    Resume CleanUp
End Sub
Sub Spiel_reset()
    If Range("O22").Value = 301 Then
        ' Setzen Sie das Spielziel auf 301
        Spielziel = 301
        
        ' Löschen Sie den Inhalt der Zellen F3 bis H3 und setzen Sie den aktiven Spieler zurück
        Range("F3:H3").ClearContents
        aktiver_Spieler = 6
        Call Spieler_wechseln
        
        ' Setzen Sie das Spielziel für die Zellen P6 bis P11 und N6 bis N11 auf 301
        Dim zelle As Range
        For Each zelle In Range("P6:P11, N6:N11")
            zelle.Value = Spielziel
        Next zelle
        
        Dart = 0
        Call Darts_ausblenden
    End If
End Sub

Vielleicht kann mich jemand dabei unterstützen und eine Lösung anbieten.

Gruß Adde

2 Antworten

0 Punkte
Beantwortet von xlking Experte (1.7k Punkte)

Hallo Adde,

so langsam solltest du eigentlich mal entschieden haben, wo du Eingaben machen willst und wo Formeln stehen.

Für dein Problem gibt es zwei mögliche Wege. Die einfache ist hier aber nicht die beste Lösung.

Das Ereignis Worksheet_Calculate() wird nach der Berechnung von Formeln im Blatt ausgeführt. Aber es wird eben immer ausgeführt, sobald etwas berechnet wird. Das kann zu ungewollten Ergebnissen führen. Dennoch kannst du es ja mal versuchen.

Private Sub Worksheet_Calculate()
  Call Spiel_reset
End Sub

Der zweite Weg wäre, dass du in VBA die Bedingungen nachbaust die zum Formelergebnis führen. Da ich deine Formeln nicht kenne kann ich dir hier nicht helfen, aber im Prinzip müssest du dich im Worksheet_Change auf die Eingabezellen beziehen, die deiner Formel als Quelle dienen.

Gruß Mr. K.

0 Punkte
Beantwortet von addeguddi Experte (2.7k Punkte)
Hallo Mr. K.

vielen Dank für deine Antwort. Zur Info in O22 steht KKrösste(P6:P11;1) und wenn das erreicht ist sollte das Spiel automatisch zurück gesetzt werden, sonst müsste ich den Button Spiel zurücksetzen immer drücken wenn Spiel bzw. die Zahl erreicht ist, das wollte ich mir ersparen.

Gruß Adde
...