Ocultar imágenes

Quería saber como puedo ocultar una imagen en excel y que al cambiar el contenido de determinada celda se me muestre dicha imagen.
Es para hacer un juego tipo test.

1 Respuesta

Respuesta
1
Ok, entendido. Olvídate de crear una figura que tape al dibujo cuando la respuesta es incorrecta. Imaginando que la imagen se llama "Imagen 1", y quieres que aparezca cuando en la celda A1 ponga un 3, deberás introducir la siguiente macro:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
If Range("A1").Value = 3 Then
ActiveSheet.Shapes("Imagen 1").Visible = True
Else
ActiveSheet.Shapes("Imagen 1").Visible = False
End If
End If
End Sub
La he probado y funciona perfectamente, incluso protegiendo la hoja (claro está que la celda A1 deberá estar desprotegida para que puedas cambiar el valor). Sólo advertirte que debes colocar este código exactamente donde te dije en la respuesta anterior. En fin, creo que es lo que estás buscando. Salvo que te quede alguna duda, no olvides finalizar la pregunta.
Ok, muchísimas gracias, funciona perfectamente.
Muchas gracias por responderme, en principio consigo hacer lo que quería pero tengo un problema.
La idea es hacer un juego tipo test y cuando el jugador escriba la respuesta correcta se muestre la imagen, si no protejo la hoja funciona perfectamente, pero cuando bloqueo el contenido para que no se puedan mover las imágenes ni cambiar el diseño me sale este error :
"Se ha producido el error '-2147467259 (80004005)' en tiempo de ejecución:
Error en el método 'select' de objeto 'shape'
¿Será entonces que es incompatible este método con el bloqueo de las imágenes?
Si no puedo bloquear las imágenes el jugador solo tendría que mover la imagen que está encima, ¿no existe ningún método que en lugar de alterar el orden de las imágenes las muestre y oculte?
Muchas gracias. Un saludo.
La verdad es que en Excel no hay una forma de hacer que una imagen y sólo una esté visible o invisible. Las imágenes, o están o no están. Si vas a Herramientas-Opciones y en la pestaña "Ver", en Objetos, marcas la casilla "Ocultar todos", lo que hará es ocultar TODOS los objetos. Pero no se puede ocultar uno sólo. Así que se me ocurre lo siguiente: tendrías 2 imágenes exactamente del mismo tamaño, y colocadas exactamente en el mismo sitio. A partir de ahí, lo que sí existe es la posibilidad de traer una al frente, de tal forma que la otra quede tapada. Por otra parte, dices que cuando cambie el contenido de la celda se muestre la imagen: tal como lo expresas, siempre aparecerá: la primera vez que cambies aparecerá. La segunda vez, no hará nada, pues estaba ya visible, no puede aparecer de nuevo. Por ello, voy a suponer que quieres que aparezca cada vez que se ponga en la celda A1 el valor 3. Para ello deberás ir al editor de Visual Basic (Alt+F11), pinchar en el explorador de proyectos(Control+R), hacer doble click donde la hoja que quieres que ocurra ésto, y copiar el siguiente código: (en mi ej., el objeto que tapa la imagen cuando el valor es distinto de 3 es un rectángulo llamado Rectángulo 1, deberás cambiarlo por el que corresponda, para ver el nombre seleccionalo y mira en el cuadro de imagen, en la parte superior izquierda de la pantalla):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
If Range("A1").Value = 3 Then
ActiveSheet.Shapes("Rectángulo 1").Select
Selection.ShapeRange.ZOrder msoSendToBack
Else
ActiveSheet.Shapes("Rectángulo 1").Select
Selection.ShapeRange.ZOrder msoBringToFront
End If
End If
End Sub
Con esta macro, cuando el valor de A1 sea 3, aparecerá la imagen, y cuando sea distinto a 3 quedará oculta.
En fin, si te queda cualquier duda, preguntame y te ayudo. Sino.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas