Thema Datum  Von Nutzer Rating
Antwort
Rot For-Schleife unterbrechen | Wizzard
09.12.2015 14:02:21 oidromom
NotSolved
09.12.2015 14:40:50 oidromom
NotSolved
09.12.2015 14:50:21 Gast31890
Solved

Ansicht des Beitrags:
Von:
oidromom
Datum:
09.12.2015 14:02:21
Views:
1348
Rating: Antwort:
  Ja
Thema:
For-Schleife unterbrechen | Wizzard

Hi Leute,

 

ich habe folgendes Problem: Ich möchte für das Kartenspiel Wizzard eine automatische Tabelle erstellen. Dazu habe ich eine For-Schleife geschrieben, die die Punkte der Spieler korrekt ausfüllt. Nach jeder Runde werden abgegebene Tipps und Stiche eingetragen und mit einem Button wird ein VBA-Makro ausgeführt, dass die Punkte errechnet. Das Problem ist jetzt nur, dass er immer die gesamte Tabelle nach unten ausfüllt. Sprich nach Runde 1 haben auch alle Runden bis Runde 20 Werte. Ich verstehe jetzt nicht ganz, wie man diese For-Schleife unterbrechen kann. Die Anweisung hab ich eigentlich. Wenn die Zelle x,y leer ist, dann stoppe die For-Schleife bei Wert x-1. Ich finde nur die korrekte Syntax dafür nicht. Hier mein Skript:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
Sub Wizzard()
 
For upCounter = 7 To 26
 
 
 
a = Cells(upCounter, 31)
If a = 0 Then
    Cells(upCounter, 2) = (Cells(upCounter - 1, 2)) + 20 + 10 * Cells(upCounter, 10)
End If
 
If a > 0 Then
    Cells(upCounter, 2) = (Cells(upCounter - 1, 2)) + (-10 * Cells(upCounter, 31))
End If
 
If a < 0 Then
    Cells(upCounter, 2) = (Cells(upCounter - 1, 2)) + (10 * Cells(upCounter, 31))
     
End If
 
 
b = Cells(upCounter, 32)
If b = 0 Then
    Cells(upCounter, 3) = (Cells(upCounter - 1, 3)) + 20 + 10 * Cells(upCounter, 12)
End If
 
If b > 0 Then
    Cells(upCounter, 3) = (Cells(upCounter - 1, 3)) + (-10 * Cells(upCounter, 32))
End If
 
If b < 0 Then
    Cells(upCounter, 3) = (Cells(upCounter - 1, 3)) + (10 * Cells(upCounter, 32))
         
End If
 
c = Cells(upCounter, 33)
If c = 0 Then
    Cells(upCounter, 4) = (Cells(upCounter - 1, 4)) + 20 + 10 * Cells(upCounter, 14)
End If
 
If c > 0 Then
    Cells(upCounter, 4) = (Cells(upCounter - 1, 4)) + (-10 * Cells(upCounter, 33))
End If
 
If c < 0 Then
    Cells(upCounter, 4) = (Cells(upCounter - 1, 4)) + (10 * Cells(upCounter, 33))
 
End If
 
Next upCounter
End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot For-Schleife unterbrechen | Wizzard
09.12.2015 14:02:21 oidromom
NotSolved
09.12.2015 14:40:50 oidromom
NotSolved
09.12.2015 14:50:21 Gast31890
Solved