Hoy trabajaremos con los objetos Shapes para dar una posible solución a un lector que preguntaba:
Lo primero consiste en añadir unas imágenes o formas en mi caso con el aspecto deseado...
Para nuestro ejemplo dispondremos de cuatro preguntas a responder, por lo que añadimos cuatro muñecos verdes y cuatro rojos superpuestos dos a dos por cada pregunta...
A estas formas las he llamado:
'bien1' 'mal1'
'bien2' 'mal2'
'bien3' 'mal3'
'bien4' 'mal4'
Por otra parte, para controlar que las respuestas dadas en las celdas C17,C20,C23,C26 son correctas, las cruzamos con las respuestas correctas de control en G17,G20,G23,G26, cosa que comprobamos en H17,H20,H23,H26 con una simple prueba lógica:
=C17=G17
Tenemos todo lo necesario:
1-las ocho formas
2-las preguntas planteadas
3-y su corrección
solo nos falta controlar las formas (rojo o verde) según corresponda, lo que haremos con un evento 'Worksheet_Change' de hoja.
Así pues, insertamos el siguiente evento 'Worksheet_Change' en la ventana de código de la hoja:
Y podemos probar el cuestionario y comprobar como funciona según lo esperado.
[...]estoy haciendo un pequeño juego de preguntas para mi hijo pequeño, y a la hora de responder afirmativamente a una cuestión desearía que saliera un signo o dibujo con un smile verde sonriente y en caso negativo que saliera un smile rojo triste. No soy capaz de vincular esas imágenes con la respuesta, sólo consigo que me ponga correcto o incorrecto[...] |
Lo primero consiste en añadir unas imágenes o formas en mi caso con el aspecto deseado...
Para nuestro ejemplo dispondremos de cuatro preguntas a responder, por lo que añadimos cuatro muñecos verdes y cuatro rojos superpuestos dos a dos por cada pregunta...
A estas formas las he llamado:
'bien1' 'mal1'
'bien2' 'mal2'
'bien3' 'mal3'
'bien4' 'mal4'
Por otra parte, para controlar que las respuestas dadas en las celdas C17,C20,C23,C26 son correctas, las cruzamos con las respuestas correctas de control en G17,G20,G23,G26, cosa que comprobamos en H17,H20,H23,H26 con una simple prueba lógica:
=C17=G17
Tenemos todo lo necesario:
1-las ocho formas
2-las preguntas planteadas
3-y su corrección
solo nos falta controlar las formas (rojo o verde) según corresponda, lo que haremos con un evento 'Worksheet_Change' de hoja.
Así pues, insertamos el siguiente evento 'Worksheet_Change' en la ventana de código de la hoja:
Private Sub Worksheet_Change(ByVal Target As Range) 'comenzamos controlando qué celdas están supervisadas If Not Intersect(Target, Range("C17,C20,C23,C26")) Is Nothing Then 'asociamos número de filas a preguntas Select Case Target.Row Case Is = 17: pregunta = 1 Case Is = 20: pregunta = 2 Case Is = 23: pregunta = 3 Case Is = 26: pregunta = 4 End Select 'comprobamos se ha rellenado con algo las celdas de respuesta 'si se ha completado con algo se evalua If Target.Value <> "" Then 'se verfica con la celda control de la col H 'si es VERDADERO se ha acertado If Cells(Target.Row, "H") = True Then 'y entonces sacamos el muñeco verde y ocultamos el rojo ActiveSheet.Shapes("bien" & pregunta).Visible = msoTrue ActiveSheet.Shapes("mal" & pregunta).Visible = msoFalse Else 'en caso contrario sacamos el muñeco rojo y ocultamos el verde ActiveSheet.Shapes("bien" & pregunta).Visible = msoFalse ActiveSheet.Shapes("mal" & pregunta).Visible = msoTrue End If Else 'si no se ha rellenado nada se ocultan ambas figuras ActiveSheet.Shapes("bien" & pregunta).Visible = msoFalse ActiveSheet.Shapes("mal" & pregunta).Visible = msoFalse End If End If End Sub
Y podemos probar el cuestionario y comprobar como funciona según lo esperado.
No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.