Teller (vd pogingen)

Status
Niet open voor verdere reacties.

Zarish

Gebruiker
Lid geworden
25 feb 2013
Berichten
8
Hoi iedereen,

Ik heb een raadspel gemaakt, maar de teller doet het niet. Soms blijft hij een tijdje op 1 staan en soms doet 't het opeens wel. Weet iemand wat er fout is aan de code?
Code:
Dim x As Integer 'Dit is de computer
Dim y As Integer
Dim Teller As Integer
Private Sub NieuwSpelKnop_Click()
Teller = 0
PogingLbl = ""
UitkomstLbl = ""
InvoerGetal = ""

    opnieuw
    
End Sub

Private Sub opnieuw()

Randomize
x = Int(Rnd * 100) + 1 'de computer genereert een code tussen de 0 en 100

End Sub

Private Sub RaadGetalKnop_Click()

If IsNumeric(InvoerGetal.Text) = False Then
    MsgBox ("Alleen getallen invoeren!")
InvoerGetal.Text = ""

End If
'tekstveld blijft leeg als er een 'foutje' is gemaakt


    y = Val(InvoerGetal.Text)

    If (y < 0) Or (y > 100) Then
        MsgBox ("Het getal moet tussen 0 en 100 liggen!")
        UitkomstLbl.Visible = False

End If

    If y < x Then
    UitkomstLbl.Caption = "Raad hoger!"

Else
    If y > x Then
    UitkomstLbl.Caption = "Raad lager!"

Else
    y = x
    UitkomstLbl.Caption = "GERADEN!!"
  
End If

PogingLbl.Visible = True
Teller = Teller + 1
PogingLbl = Teller

If y = x Then
    PogingLbl.Visible = True
    
End If

InvoerGetal.Text = "" 'Dit zorgt ervoor dat als het getal geraden is, dat de invoerveld 'leeg' wordt

End If
End Sub

Private Sub UitkomstLbl_Click()

End Sub

Private Sub UserForm_Activate()
    opnieuw
Teller = 0

End Sub

bedankt :)
 
Hoi,

Allereerst: Probeer de volgende keer aub de inspringingen te behouden bij het plakken van de code. Dat is voor ons makkelijker.

Dan nog eerst wat opmerkingen:
Bij het checken of de input wel 'valid' is, maak je bij het eerste if statement de textbox leeg. Bij de tweede niet.
Je kan ook elseif gebruiken, ik denk dat dat handiger kan zijn: http://msdn.microsoft.com/en-us/library/752y8abs.aspx.

Volgens mij moet je (oa) deze lijn helemaal uit de if halen (onderaan zetten): "Teller = Teller + 1".

Uiteindelijk krijg je dan zoiets (niet getest):
[CPP] If IsNumeric(InvoerGetal.Text) = False Then
MsgBox("Alleen getallen invoeren!")
InvoerGetal.Text = ""
End If
''//tekstveld blijft leeg als er een 'foutje' is gemaakt


y = CInt(InvoerGetal.Text)

If (y < 0) Or (y > 100) Then
MsgBox("Het getal moet tussen 0 en 100 liggen!")
UitkomstLbl.Visible = False
InvoerGetal.Text = ""
End If

If y < x Then
UitkomstLbl.Caption = "Raad hoger!"
ElseIf y > x Then
UitkomstLbl.Caption = "Raad lager!"
ElseIf y = x Then
UitkomstLbl.Caption = "GERADEN!!"
InvoerGetal.Text = "" ''//Dit zorgt ervoor dat als het getal geraden is, dat de invoerveld 'leeg' wordt
PogingLbl.Visible = True
End If

PogingLbl.Visible = True
Teller = Teller + 1
PogingLbl = Teller[/CPP]

Overigens zou ik een NumericUpDown gebruiken ipv een textbox.

Succes! :thumb:
MartinJM
 
Zarish,

jouw code compileert niet eens bij mij... welke versie gebruikt je ?

Zet ook

[CPP]
Option Strict On
Option Explicit On
[/CPP]

eens bovenaan je code.
 
vba.net in Word 2010!

Dankjullie voor de tips! Hij werkt nu prima :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan