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 original
Sub 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