Microsoft Excel

Herbers Excel/VBA-Archiv

Formular Schleife


Betrifft: Formular Schleife von: Toni
Geschrieben am: 14.06.2017 13:16:02

Guten Tag
also, ich habe diesen Code für ein Formular geschrieben.

Es haut schon gut hin, dass bei jedem Klick die Punktezahl erhöht wird, auch funktioniert es, dass wenn die Zahl 0 (Case4) erreicht wird. "Games" um 1 erhöht wird.
Ich suche nach einer Schleife die mir, wenn ich bei 0 angelangt bin, beim nächsten Klick wieder auf 20 hüpft.
Mit einer Do Loop Until Schleife hängt sich mein Excel auf, und mit einer For Next Schleife komm ich auch auf keinen grünen Zweig.

Das ist der Code:



Private Sub SpielA_Click()

a = a + 1

    Select Case a
        Case 1: aScore = 20
        Case 2: aScore = 35
        Case 3: aScore = 50
        Case 4: aScore = 0
    End Select
    
PunktA.Value = aScore
PunktB.Value = bScore

GameA.Value = 0

If aScore = 0 Then
    GameA.Value = GameA.Value + 1

End If
End Sub

  

Betrifft: AW: Formular Schleife von: yummi
Geschrieben am: 14.06.2017 13:27:02

Hallo Toni,

meinst Du sowas?



Private Sub SpielA_Click()

a = a + 1

    Select Case a
        Case 1: aScore = 20
        Case 2: aScore = 35
        Case 3: aScore = 50
        Case 4: aScore = 0
    End Select
    
PunktA.Value = aScore
PunktB.Value = bScore

GameA.Value = 0

If aScore = 0 Then
    GameA.Value = GameA.Value + 1
    aScore = 20
End If
End Sub
Gruß
yummi


  

Betrifft: AW: Formular Schleife von: Toni
Geschrieben am: 14.06.2017 13:35:30

vielen dank für die Antwort.

Nein eher so, dass dann das ganze Prozedere wieder von neuem beginnt.
also dass in "Games" die 1 stehen bleibt und in "Punkte" wieder von 20 beginnt und über 35,50 bis zu 0 geht und den Wert von "Games" wieder um 1 (also auf 2) erhöht.


LG


  

Betrifft: AW: Formular Schleife von: yummi
Geschrieben am: 14.06.2017 13:49:41

Hallo Toni,

das ganze sol ja per Klick funktionieren, also musst Du am Ende wieder die Anfangsbedingen herstellen, also anstatt wie fälsclicherweise von mir angegeben aScore = 20 muss dort a = 0 hin (wobei ich davon ausgehe das a eine globale Varoiable ist?
Dann wird beim nächsten Klick a auf 1 gesetzt und alles beginnt von vorn.

Gruß
yummi


  

Betrifft: AW: Formular Schleife von: Toni
Geschrieben am: 14.06.2017 14:01:35

super vielen vielen dank!
so einfach, aber effektiv :-)

hast du jetz noch vielleicht eine Ahnung wie ich es schaffen könnte, dass sich der "Game" Zähler um 1 erhöht, sobald 0 im PunkteZähler erreicht ist und sich beim nächsten 0 wieder um 1 erhöht?

If aScore = 0 Then
    GameA.Value = GameA.Value + 1
habs jetzt so, aber so gehts mir der Gamezähler immer auf 0 zurück, sobald keine 0 mehr in der Textbox "Punkte" steht.
Also ich möchte einfach mitzählen wie viele Spiele gewonnen wurden.


  

Betrifft: AW: Formular Schleife von: Toni
Geschrieben am: 14.06.2017 14:03:55

Oh das ganze hat sich erledigt, vielen dank :-)


  

Betrifft: AW: Formular Schleife von: yummi
Geschrieben am: 14.06.2017 14:15:33

Hallo Toni,

nimm einfach die zeile GameA.value = 0 raus. Varialben werden bei VBA mit 0 vorinitialisert.
Wobei ich die Deklaration deiern Variablen nciht sehe, bzw. ob du sie überhaupt deklariert hast.
Wenn du in deinem Modul in der erster Zeile Option explicit schreibst, bekommst Du wahrschinlich diverse Fehlermeldungen.

Gruß
yummi


  

Betrifft: AW: Formular Schleife von: Toni
Geschrieben am: 14.06.2017 14:20:32

Hab das Deklarieren der Variablen jetzt nicht dazukopiert, sind aber deklariert :-)
das mit dem rausnehmen hab ich versucht, hat auch beim 1.mal geklappt, jetz bekomme ich aber immer einen Laufzeitfehler 13 (typen unverträglich) :-(

wegen dieser Zeile:

GameA.Value = GameA.Value + 1



  

Betrifft: AW: Formular Schleife von: Toni
Geschrieben am: 14.06.2017 14:30:47

äääh liegt dieser Fehler an meiner Deklarierung?

Option Explicit

Dim a As Integer
Dim b As Integer, aScore As String, bScore As String
Dim aGames As Integer, bGames As Integer
Dim aSets As Integer, bSets As Integer
bin mir schon total unsicher


  

Betrifft: AW: Formular Schleife von: yummi
Geschrieben am: 14.06.2017 14:43:59

Hallo Toni,

ja liegt es ;-)

aScore und bScore ist bei dir ein String, du weißt ihm im Code aber eine Zahl zu.
Strings sind in "" Zahlen ohne
GameA und GameB sind Zellen die du umbenannt hast? und wen nja wie hast du sie formatiert?

Gruß
yummi

oder schick mal die Datei, ist wahrscheinlich einfacher


  

Betrifft: AW: Formular Schleife von: Toni
Geschrieben am: 14.06.2017 14:47:57

https://www.herber.de/bbs/user/114273.xlsm

so hoffe das klappt so.

vielen dank schonmal für die bemühungen :-)


  

Betrifft: AW: Formular Schleife von: yummi
Geschrieben am: 14.06.2017 15:03:38

Hallo Toni,

hättest ja auch gleich sagen können das es sich um eine Textbox handelt ;-)

mach so
GameA.Value = Val(GameA.Value) + 1

Val macht aus dem String eine Zahl und dann kannst Du addieren, musst Du an den anderen Stellen auch machen.

Gruß
yummi


  

Betrifft: AW: Formular Schleife von: Toni
Geschrieben am: 14.06.2017 15:08:36

hahaha sorry, bin generell nicht so gut im erklären.

TAUSEND DANK :-)


  

Betrifft: AW: Formular Schleife von: yummi
Geschrieben am: 14.06.2017 14:36:42

von welchem Typ ist den ndie Variable, kein integer?

gruß
yummi


Beiträge aus den Excel-Beispielen zum Thema "Formular Schleife"