Excel - imagen.

   
Vista:

imagen.

Publicado por Ronal (8 intervenciones) el 03/03/2014 19:29:06
amigos tengo una duda......... tengo la siguiente macro.


1
2
3
4
5
6
7
8
9
10
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
 On Error Resume Next
  foto = Range("b1").Value
ActiveSheet.Image1.Picture = LoadPicture("D:\FOTOS SISTEMA\" & foto & ".jpg")
    With ActiveWindow.VisibleRange
        Image1.Top = .Top + 5
        Image1.Left = .Left + .Width - Image1.Width - 45
    End With
End Sub

me ejecuta muy bien........ solo que cuando no esta la foto...... me carga la anterior...... lo que quiero es que cuando no este la foto me muestre el cuadro gris..... ... que se puede hacer...... mil gracias......
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

imagen.

Publicado por Rafael (38 intervenciones) el 04/03/2014 09:21:47
A ver creo el problema lo tienes en el "On Error Resume Next"
Obviamente si el valor de foto esta vacio y lo tratas de asignar a la imagen y esta no existe el programa marcara error, con esa sentencia evitas que muestre el error pero la imagen mantiene la que antes tenia asignada.

Ahora bien si lo que quieres es que solo se muestre el cuadro de la imagen deberias de evaluar el posible error con algo similar a esto:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub Worksheet_Change(ByVal Target As Range)
   Application.ScreenUpdating = False
   'On Error Resume Next 
   foto = Range("b1").Value
   if (foto="") then
      ActiveSheet.Image1.Picture = null
   else
      ActiveSheet.Image1.Picture = LoadPicture("D:\FOTOS SISTEMA\" & foto & ".jpg")
   end if
   With ActiveWindow.VisibleRange
        Image1.Top = .Top + 5
        Image1.Left = .Left + .Width - Image1.Width - 45
   End With
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

imagen.

Publicado por lh_zero (3 intervenciones) el 07/03/2014 02:15:48
o "vaciar" la foto al inicio de la ejecución.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar