Foros del Web » Soporte técnico » Ofimática »

imagenes en excel con macros

Estas en el tema de imagenes en excel con macros en el foro de Ofimática en Foros del Web. Saludos amigos foreros, os escribo para ver si entre todos me podeis hechar un cable, he leido posts parecidos, pero mi duda es diferente, segun ...
  #1 (permalink)  
Antiguo 30/08/2007, 06:49
 
Fecha de Ingreso: agosto-2007
Mensajes: 2
Antigüedad: 16 años, 7 meses
Puntos: 0
imagenes en excel con macros

Saludos amigos foreros, os escribo para ver si entre todos me podeis hechar un cable, he leido posts parecidos, pero mi duda es diferente, segun un valor en una celda, quiero que aparezca una imagen u otra, las imagenes van a estar en la misma hoja, y quiero que esten ocultas, solo que aparezca la que el nº de celda está, aqui os paso lo que he hecho...

Cita:
Dim Direccion As String
Dim Cambiar As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)

Valor = Range("K3").Value
If Valor > 100 Then
ActiveSheet.Shapes("Imagen 7").Visible = False
ActiveSheet.Shapes("Imagen 9").Visible = False
ActiveSheet.Shapes("Imagen 11").Visible = False
ActiveSheet.Shapes("Imagen 13").Visible = False
ActiveSheet.Shapes("Imagen 15").Visible = False
ActiveSheet.Shapes("Imagen 17").Visible = False
ActiveSheet.Shapes("Imagen 19").Visible = False
ElseIf Valor = 1 Then
ActiveSheet.Shapes("Imagen 7").Visible = True


ElseIf Valor = 2 Then
ActiveSheet.Shapes("Imagen 9").Visible = True

ElseIf Valor = 3 Then
ActiveSheet.Shapes("Imagen 11").Visible = True

ElseIf Valor = 4 Then
ActiveSheet.Shapes("Imagen 13").Visible = True

ElseIf Valor = 5 Then
ActiveSheet.Shapes("Imagen 15").Visible = True

ElseIf Valor = 6 Then
ActiveSheet.Shapes("Imagen 17").Visible = True


Else
ActiveSheet.Shapes("Imagen 19").Visible = True

End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Direccion = ActiveCell.Address
Cambiar = True
End Sub
muchas gracias!!
  #2 (permalink)  
Antiguo 30/08/2007, 16:56
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años, 1 mes
Puntos: 88
De acuerdo Imagenes en excel con macros

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

Última edición por mrocf; 30/08/2007 a las 17:09
  #3 (permalink)  
Antiguo 03/09/2007, 03:00
 
Fecha de Ingreso: agosto-2007
Mensajes: 2
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Imagenes en excel con macros

Muchas Gracias, Pero El Problema Que Ocurre Ahora, Es Que Por Ejemplo El Valor De K3 Vale 5, Y A Continuacion 2, "queda Tapado Por La Imagen 5 Al Ser Posterior" Lo Que Quisiera, Es Q Solo Se Viese La Imagen Activa Por La Casilla, Las Otras Ocultas.... Alguna Sugerencia???

Gracias!!!

Pd Es Posible Tener El Valor De K3 En Otra Hoja???
  #4 (permalink)  
Antiguo 03/09/2007, 04:19
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años, 1 mes
Puntos: 88
Re: imagenes en excel con macros

Observa Sysq: El código

On Error Resume Next
ActiveSheet.Shapes.SelectAll
Selection.Visible = False
On Error GoTo 0


oculta TODAS las imágenes de la hoja... por lo que SIEMPRE se visualiza una sola imagen.

En cuanto a visualizar imágenes de otra hoja, intenta reemplazar:
ActiveSheet.Shapes

por
Sheets("nombre de la hoja").Shapes

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:52.