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

Hallo und einen schönen Tag wünsche ich euch allen.

versuche schon wieder seit einiger Ewigkeit eine Lösung zu finden. Anstatt das ich die Aufnahme per Button bestätigen muss, möchte ich das dies nach 3 einfachen Klicks automatisch bestätigt wird und wenn die Zielvorgabe erreicht ist dann auch automatisch bestätigen. Ziel - Vorgabe ist individuell. Das Ziel Steht in der Zelle M3 und die Werte werden in den Zellen F3 bis H3 eingetragen nach der Bestätigung werden diese Zellen geleert und der nächste Spieler ist an der Reihe und das, bis ziel erreicht ist. 

Beispiel: Spieler 4 hat jetzt 7 Würfe getätigt und mit dem 7ten Wurf ist das Ziel erreicht dann soll die Aufnahme auch bestätigt werden.

Das ist das VBA für die Bestätigung der Aufnahme..

Sub Aufnahme_bestaetigen()
    Call Spieler_wechseln
    Range("F3:H3").ClearContents
    Dart = 0
    Call Darts_ausblenden
End Sub

Wäre toll wenn mir jemand eine Lösung erstellen könnte.

Gruß Adde

4 Antworten

0 Punkte
Beantwortet von beverly_ Experte (3.4k Punkte)
Hi Adde,

ich würde keine einfachen Klicks machen sondern einen (bzw. 3) Doppelklicks verwenden - und dazu kannst du das Doppelklick-Ereignis des Tabellenblattes benutzen. Ich würde an deiner Stelle dabei die Anzahl der Dokkelklicks in einer Zelle zählen und beim Leeren der Zellen F3:H3 diese Zelle ebenfalls leeren sodass die Zählung von vorn beginnen kann.

Bis später, Karin
0 Punkte
Beantwortet von vbastler Mitglied (325 Punkte)
Bearbeitet von vbastler
Moin Adde,

Karins Vorschlag Doppelklicks zu nehmen hat den Grund, dass Einzelklicks nur über den Selection_Change-Event abgefangen werden können und damit auch versehentliche Wechsel einer Zelle den erwähnten Zähler hochzählen würden. Das wieder zurückzusetzen wäre umständlich und fehleranfällig.

Die Alternative wären einfache Rechtsklicks. Die können gezielt abgefangen werden und dann könnte man einen Zähler im VBA nutzen, der nicht sichtbar sein muss.

So funktionert's: Du markiert die drei Zellen in Deinem Sheet und trägst in das Namensfeld "Aufnahme" ein. Damit hast einen Namensbereich definiert. Dann gehört folgender Code in das Sheet:

Option Explicit
Public bClicks As Byte

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
If Not Intersect(Target, Range("Aufnahme")) Is Nothing Then
    bClicks = bClicks + 1
    If bClicks >= 3 Then
        bClicks = 0
        MsgBox "Hier Dein Code"
    End If
End If

End Sub

in den Du dann Deine weitere Verarbeitung einsetzen kannst.

Grüße

d'r Bastler von den VBAsteleien.de
0 Punkte
Beantwortet von addeguddi Experte (2.7k Punkte)

Erst einmal danke für eure Antworten.,

da bei meiner Dartliste ein Feld ist das aussieht wie eine Dartscheibe mit allen Felder ich Klicke mit der linken Maustaste einmal darauf dann Zählt er die Punkte in den besagten Zellen von D20 bis Bulls Eyes und diese werden in den Zellen F3 bis H3 eingetragen, nach drei Würfe muss ich wie beschrieben den Button drücken , Aufnahme bestätigen. Mit Doppelklick habe ich eine funktionierte Dartliste. Wollte unbedingt etwas neues erstellen. Wenn ihr möchtet könnt ihr euch einmal meine neue Dartliste anschauen, Vielleicht versteht ihr dann warum ich das gerne hätte. Wenn dies nicht möglich ist, werde ich versuchen eine Lösung zu finden.

Das wäre die Datei.https://supportnet.de/forum/?qa=blob&qa_blobid=7387684129919281258

Gruß Adde

0 Punkte
Beantwortet von addeguddi Experte (2.7k Punkte)
Hallo Karin,

habe es geschafft, das war das alte VBA

Sub Aufnahme_bestaetigen()
    Call Spieler_wechseln
    Range("F3:H3").ClearContents
    Dart = 0
    Call Darts_ausblenden
End Sub

Habe bei DART = 0 die 0 mit -1 ersetzt und es funktioniert.

Gruß Adde
...