¿Cómo puedo hacer para llamar una imagen de forma automática usando una macro en una celda?

Tengo el siguiente código de macro que me llama la imagen, pero mi problema esta es que tengo que hacer enter para que me llame la imagen, yo lo que quiero es que a medida que cambio el valor en la celda a1, también me cambie la foto y luego imprimir la ficha del personal, yo le nombre a mis fotos con mi numero de legajo, estoy haciendo un legajo de empleados de una empresa, no se si sirve también como referencia, los datos completo usando la función buscarv().

Sub MostrarFoto()
'dimensiono las variables que manejarán las fotos y la ruta de acceso a 'las mismas:
Dim Foto As Object
Dim Ruta As String
'si el usuario no escribió nada en A1, salgo del sub
If Cells(1, 1).Value = "" Then
Exit Sub
End If
'defino la ruta de acceso a las fotos:
Ruta = "C:\pictures\"
'apago el parpadeo de pantalla:
Application.ScreenUpdating = False
'por las dudas, controlo cualquier posible error:
On Error Resume Next
'si existe alguna foto, la borro:
Me.Shapes("Mi_Foto").Delete
'bueno, atención: ahora concateno la Ruta con el código que el usuario 'ingresó en A1 y a 'lo último le agrego la extensión del archivo (en este 'caso, una imagen JPG)
Ruta = Ruta & Cells(1, 1).Value & ".jpg"
'corroboro que la imagen exista. Si NO existe, me voy del Sub
If Dir(Ruta) = "" Then Exit Sub
'y aquí lo esperado: inserto la foto en excel, pasando como argumento la 'Ruta de acceso que definí en el paso anterior:
Set Foto = Me.Pictures.Insert(Ruta)
'y ahora trabajo sobre el objeto insertado, modificando un par de 'propiedades:
'nombre / posición Y dentro de la hoja / posición X dentro de la hoja / 'ancho y alto:
With Foto
.Name = "Mi_Foto"
.Top = 0
.Left = 300
.Width = 150
.Height = 150
End With
'activamos nuevamente el refresco de pantalla
Application.ScreenUpdating = True
'siempre destruimos a los objetos, para liberar los recursos del sistema:
Set Foto = Nothing
End Sub

1

1 respuesta

Respuesta
1

En el siguiente enlace te dejo un vídeo explicativo para que sepas hacerlo

http://share.cx.com/VPCrHk

No olvides finalizar la consulta

hola experto otra consulta y me podrías enviar una macro por ejemplo cuando ingreso en la celda un numero de legajo por ejemplo en A1=1; que me salga la foto en forma automática sin necesidad de hacer enter y en caso que no este la foto en mi ruta de acceso que me diga "sin foto" o "no disponible" por favor =D..GRACIAS Y EN VERDAD ME SIRVIÓ MUCHÍSIMO TU APORTE PERO AUN NO MANEJO BIEN LAS MACROS EN PROFUNDIDAD=D

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas