Buenas a todos,
Estoy intentando crear un concurso pero haciendolo con visual basic.
El concurso consiste como en los de la tele, contestar una serie de preguntas de las cuales solo hay una correcta. Es tan simple como que si se fallara una se le resta una vida y sino pues felicitar al concursante. El juego seguira adelante hasta que se contesten unas cuantas preguntas o hasta que el concursante pierda sus tres vidas.
El programa funciona (casi) pero no entiendo el fallo que me sale. He creado una tabla en el excel para no sobrecargar el programa ni utilizar base de datos. El excel esta compuesto por una tabla con 5 columnas. En la primera columna estan las preguntas, en la segunda la respuesta correcta y en las otras columnas respuestas erroneas.
El caso es que el programa coje la pregunta y tambien coje la respuesta correcta y en el supuesto "if" donde deberia decirme si es correcto o no, me lo marca como incorrecto haga lo que haga.
Haber si conseguis ver lo que yo no veo :S
Saludos.
Código vb:
Ver originalSub Jugar()
Dim preguntadesordenada As String
Dim encontrado As Boolean
Dim correcta, resposta2, celdac, celdad, celdae, celdaf As String
Dim vida As Integer
vida = 3
tam = Range("h4").Value
For f1 = 1 To tam
Range("g" & (f1 + 1)) = ""
Next
For f1 = 1 To 10
aleatorio = Int(Rnd * tam) + 1
celdac = Range("c" & (aleatorio + 1)).Value
celdad = Range("d" & (aleatorio + 1)).Value
celdae = Range("e" & (aleatorio + 1)).Value
celdaf = Range("f" & (aleatorio + 1)).Value
preguntadesordenada = Range("b" & (aleatorio + 1))
InputBox (preguntadesordenada & " " & vbCrLf & vbCrLf & celdac & " / " & celdad & " / " & celdae & " / " & celdaf)
If preguntadesordenada = celdac Then
MsgBox ("Correcto!! Pasemos a la siguiente pregunta")
Else
vida = vida - 1
MsgBox ("Te quedan" & vida & " para seguir jugando!")
End If
If vida = 0 Then
MsgBox ("GAME OVER: No tienes vidas!")
Exit Sub
End If
Next
For f1 = 1 To tam
encontrado = False
aleatorio = Int(Rnd * (tam)) + 1
While encontrado = False
If Range("g" & (aleatorio + 1)) <> 1 Then
Range("g" & (aleatorio + 1)) = 1
encontrado = True
Else
If aleatorio >= tam Then
aleatorio = 1
Else
aleatorio = aleatorio + 1
End If
End If
Wend
Next
End Sub