Ocultar imagenes con visula basic

Alguien contesto a una pregunta similar a la que voy a hacer, pero tengo una duda.
Es sobre un juego que estoy realizando y consiste en que las imágenes aparezcan conforme se van contestando a unas preguntas
Ejemplo, en la casilla A1 una imagen y en la casilla A4 se tenga que contestar "tierra", entonces que aparezca en la casilla B1 otra imagen y en la casilla B1 ssetengaque contestar AGUA, en la casilla C1 aparece otra imagen... Así aproximadamente unas 50 que quiero que conste el juego.
Pusieron esta fórmula, pero solo consigo que funcione en la primera imagen.
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

1 respuesta

Respuesta
1
Supongo que para conseguir el encadenamiento que deseas deberás hacer un anidamiento de sentencias "if" de tal manera que la 1ª contenga a las 49 restantes, la 2ª a las 48... etc etc
Según mis conocimientos el código que me planteas está bien, solo tendrás que ir cambiando la referencia de shape a validar y del target a verificar.
Gracias por contestar.
Pero es que soy un poco patoso y no me entero muy bien de lo que quieres decir
Si pudieras ponerme un trozo de la fórmula, solo con las dos primera creo que tendría suficiente y luego probaría yo.
Dime algo aunque sea un no como respuesta para poder finalizarla y puntuarte
Gracias.
Creo que sería una cosa así... nunca he trabajado con algo como lo que propones, pero usando la lógica creo que esto funcionará como tu quieres:
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
If Target.Address = "$A$2" Then
If Range("A2").Value = 3 Then
ActiveSheet.Shapes("Imagen 2").Visible = True
If Target.Address = "$A$3" Then
If Range("A3").Value = 3 Then
'etc etc etc
End If
Else
ActiveSheet.Shapes("Imagen 2").Visible = False
End If
End If
Else
ActiveSheet.Shapes("Imagen 1").Visible = False
End If
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas