Solo un
ligero cambio a tu macro y un reemplazo del "
if-then-else-end if" por "
select case-end select":
Código:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$K$3" Then Exit Sub
Valor = Range("K3").Value
On Error Resume Next
ActiveSheet.Shapes.SelectAll
Selection.Visible = False
On Error GoTo 0
Select Case Valor
Case 1
ActiveSheet.Shapes("Imagen 7").Visible = True
Case 2
ActiveSheet.Shapes("Imagen 9").Visible = True
Case 3
ActiveSheet.Shapes("Imagen 11").Visible = True
Case 4
ActiveSheet.Shapes("Imagen 13").Visible = True
Case 5
ActiveSheet.Shapes("Imagen 15").Visible = True
Case 6
ActiveSheet.Shapes("Imagen 17").Visible = True
Case Else
ActiveSheet.Shapes("Imagen 19").Visible = True
End Select
End Sub
Te hago notar que tu programa señala que si K3 > 6, se visualiza la "Imagen 19".
Pero si lo que -en realidad- quieres es que tal imagen se visualice cuando K3 = 7, debes reemplazar:
Case Else
por:
Case 7
Saludos