204 Aufrufe
Gefragt in Tabellenkalkulation von addeguddi Experte (2.6k Punkte)
Bearbeitet von addeguddi
Hallo zusammen und einen schönen Sonntag wünsche ich euch,

möchte gerne, das in einer Zelle sich die Zahl automatisch erhöht wenn in Zelle LD 5 grösser gleich 50 dann Null, wenn LD 5 kleiner 50 oder 0 dann 1in sonst immer um 1 erhöhen bis die Null erreicht ist.

Kann mir jemand dabei eine Lösung vorschlagen

VBA wäre sehr schön.

Vergessen: Ergebnis soll in Zelle LH7 erscheinen

Habe einen Vorschlag vom Internet aber das funktioniert nicht. Vielleicht mache ich auch etwas falsch.

Das ist der Vorschlag:   If(LD5=0;"";LD5+1) Fehlermeldung: Name

12 Antworten

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

wenn ich dich richtig verstanden habe, soll sich in Zelle LH7 eine Zahl automatisch erhöhen soll, wenn der Wert aus Zelle LD5 kleiner 50 ist. Sobald der Wert in Zelle LD5 die 50 erreicht, soll der Wert der Zelle LH7 auf Null gesetzt werden.

Ich nehme mal an, dass der Wert der Zelle LD5 immer dann geprüft werden soll, wenn sich dieser Wert ändert.

Steht in der Zelle LD5 eine Formel oder wird der Wert in die Zelle per Hand bzw. Makro eingetragen?

Gruß

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

Danke vorab für deine Anfrage.

Kurze Info zu meiner Frage: Habe im Fernsehen Dart angeschaut und da sah ich wie die Würfe für Doppel in und Doppel Out gezählt wurden, hat mich inspiriert dies auch für meine Statistik auch zu machen. es geht wieder einmal um Dart und zwar möchte ich die Anzahl der Würfe ermitteln für Doppel aus. Habe ein Teil aus VBA kopiert vielleicht kann man das eventuell erweitern, wenn das Doppel nicht getroffen wird, das dann 1 ,2 bis Doppel getroffen wurde die Anzahl in der Zelle eingetragen wird. ( 50 zählt auch als Doppel)

'Null ohne Doppel-Out prüfen
If Cells(6, lngSpalte) - lngWurf = 0 And lngDT <> 2 Then
  'dann Wurfergebnis auf Null setzen
  lngWurf = 0
  'Marker für überworfen setzen
  bUeberw = True
End If

oder das verändern

'Fall kein Check-Out mit Doppel, dann Ergebnis des Wurfes auf Null setzen
If Cells(6, lngSpalte) - lngWurf = 1 And lngDT <> 2 Then lngWurf = 0

Also, ja in der Zelle steht eine Formel sie lautet: =$LC$5-LA17 und wird über Makro eingetragen.

Nun das was ich erreichen möchte ist, wenn die zahl 50 in der Zelle  erscheint soll die Zelle LH7 leer sein und dann danach wenn  die Zahl kleiner als 50 soll 1 , 2 Usw. bis 0 in der Zelle erscheint.

Sollte wider erwarten dies nicht möglich sein ist es auch nicht schlimm.

Gruß Adde
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)

Hallo Adde,

wenn du die Fehlversuche auf Doppel-Aus zählen willst, dann kann es ja auch andere Doppel-Aus-Zahlen geben als 50.

Ergänze mal das vorhandene Makro wie folgt (neuer Teil ist fett):

'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

'Zähler für Doppel-Out-Versuche
If bUeberw = True Then
   Range("LD5") = Range("LD5") + 1
  Else
   Range("LD5") = ""
End If

Schau mal, ob das so funktioniert, wie du willst.

Gruß

M.O.

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

erst einmal vielen Dank für deine Mühe, Habe es umgesetzt musste aber LD5 ändern auf LD9 doch es erscheint keine Zahl. Der Wert müsste auch in Zelle LH7 erscheinen.

wie du weißt, versuche ich auch immer eine Lösung zu finden, da ich VBA nicht alles verstehe versuche ich es über Formeln zu erstellen, dies habe ich auch gemacht. sie sieht so aus.

Diese sagt aus: in LD9 ist die Anzahl der Würfe und LD8 steht die Punktzahl, da wir meistens 301 Spielen hat man nach dem 5 Wurf die Möglichkeit den Check Out zu erreichen daher wird erst ab dem 5 Wurf gezählt. Das bedeutet kein Check Out dann Wurf 1 Usw.

WENN(UND($LD$9>11;$LD$8>1);7;WENN(UND($LD$9>10;$LD$8>1);6;WENN(UND($LD$9>9;$LD$8>1);5;WENN(UND($LD$9>8;$LD$8>1);4;WENN(UND($LD$9>7;$LD$8>1);3;WENN(UND($LD$9>6;$LD$8>1);2;WENN(UND($LD$9>5;$LD$8>1);1;WENN($LD$8=50;0;WENN($LD$8=0;1;)))))))))

Wenn man diese Formel in VBA umsetzen könnte wäre es Super.

Nochmals vieln lieben Dank.

Gruß Adde
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)

Hallo Adde,

meine Lösung war sowieso fehlerhaft (ist mir gestern Abend beim Sport gekommen sad).

Wenn du die Anzahl der nicht genutzten Doppel-Aus-Versuche zählen willst, musst du ja zuerst prüfen, ob ein Check-Out mit Doppel möglich ist. Das ist nur bei einer geraden Zahl kleiner gleich 50 möglich. 

Wenn du z.B. Beispiel 38 als Rest stehen hast und triffst die 3, dann wäre das der erste Doppel-Aus-Fehlversuch.

Bei dem Rest von 35 ist kein Check-Out mit Doppel mit möglich und der nächste Wurf würde nicht als Fehlversuch zählen. Triffst du dann z.B. die 1 würde der nächste Versuch wieder für die Doppel-Aus-Fehlversuche zählen.

Ist das das, was du erreichen willst?

Gruß

M.O.

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

ja genau das ist es. Wichtig ist es das der Wert in Zelle LH7 erscheint.

In meiner Formel habe ich auch einen Fehler.

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

kannst du mal eine Beispieltabelle zur Verfügung stellen?

Gruß

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

würde ich gerne, müsstest mir noch mal schreiben wie das funktioniert, da es über Filehorst nicht mehr geht.

Gruß Adde
0 Punkte
Beantwortet von addeguddi Experte (2.6k Punkte)
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Adde,

das herunterladen hat geklappt. Ich schau mir das mal an.

Gruß

M.O.
...