Excel - Código VBA para cambiar de foto

 
Vista:
sin imagen de perfil

Código VBA para cambiar de foto

Publicado por Hector Sanchez (3 intervenciones) el 02/07/2015 18:02:21
Buenos días, desde Montevideo-Uruguay.
Estimados foristas.
Estoy necesitando de vuestra amable ayuda.
Paso a detallar
Tengo un libro con dos hojas; "Consulta" y "Listado"
En la hoja de consulta tengo varios campos, donde aplicando la queridisima fórmula de buscarv me trae datos patronimicos de ciertos Operarios. Eso lo logro digitando el Nro. de Operario que es un dato único.
También me trae la foto del mismo (mediante un código de VBA) que encontré por un foro hace un tiempo.
Las fotos se encuentran en una carfpeta (junto a la carpeta que guardo el archivo).
Cada vez que digito el número de algún operario, como dije antes, me trae sus datos y foto.
Ahora bien, si el número de operario no existiera, fuera mal digitado o el operario en cuestión no posee foto en ese momento, me trae sus datos patronimicos, pero me deja la foto de la última consulta. Eso puede acarrear confusiones o errores, ya que ese archivito lo manejamos mas de una persona.
Necesito: Que cuando digite el número de operario, y este número no exista, esté mal digitado o simplemente el operario en cuestión no tenga fotos, que me traiga una imagen con un signo de interrogación, o un mensaje que no posee fotos o que no ponga nada, por ejemplo. ¿Me expliqué?
Para ayudar les dejo el código para traer las fotos:

1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Worksheet_Change(ByVal Target As Range)
 
             On Error Resume Next
 
              If Not Intersect(Target, Range("E4")) Is Nothing Then
 
                   Image1.Picture = _
 
                    LoadPicture(ActiveWorkbook.Path & "\imagenes\" & Target & ".jpg")
 
End If
 
End Sub

Desde ya muchas gracias tan solo por tomarse el tiempo de leer y mas gracias por resolver.
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
Imágen de perfil de Andres Leonardo
Val: 3.136
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Código VBA para cambiar de foto

Publicado por Andres Leonardo (1583 intervenciones) el 02/07/2015 19:19:41
Hola Desde Ecuador...
Quizas no sea la mejor solucion pero ..... Que tal si te creas una imagen la que tu desees (En blanco o una asi como la del outlook que es la sombra) y si no lo encuentra asigne al campo foto esta imagen "Sin_Foto.jpg"

Asi te saldria que no lo encuentra y lo deja con la imagen default..


Private Sub Worksheet_Change(ByVal Target As Range)

On Error Resume Next

If Not Intersect(Target, Range("E4")) Is Nothing Then

Image1.Picture = _

LoadPicture(ActiveWorkbook.Path & "\imagenes\" & Target & ".jpg")
else
LoadPicture(ActiveWorkbook.Path & "\imagenes\Sin_Foto.jpg")


End If

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Código VBA para cambiar de foto

Publicado por Hector (3 intervenciones) el 03/07/2015 14:11:44
Hola, gracias por molestarte en atender mi inquietud. Intenté con tu código pero no me funcionó, no sé porque, pero ya quedó solucionado igual, muy agradecido amigo!!!
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
sin imagen de perfil

Código VBA para cambiar de foto

Publicado por Juanjo (494 intervenciones) el 03/07/2015 09:48:57
Muy buenas.

Lo único que tienes que hacer es comprobar si existe el fichero, y si no, traer otra imagen (sin_foto). Podría quedar así:

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range("E4")) Is Nothing Then
If Len(Dir(ActiveWorkbook.Path & "\imagenes\" & Target & ".jpg")) > 0 Then
Image1.Picture = LoadPicture(ActiveWorkbook.Path & "\imagenes\" & Target & ".jpg")
Else
Image1.Picture = LoadPicture(ActiveWorkbook.Path & "\imagenes\sin_foto.jpg")
End If
End If
End Sub

Un saludo. Juanjo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

Código VBA para cambiar de foto

Publicado por Hector Sanchez (3 intervenciones) el 03/07/2015 13:59:51
Hola Juanjo:
Excelente!!! me sirvió de mucho y funcionó al pelo.....muchas gracias por tomarte las molestias del caso.... 10 puntos para ti!!!
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
sin imagen de perfil

Código VBA para cambiar de foto

Publicado por Khristtian (77 intervenciones) el 03/07/2015 16:17:53
Cuando programas algo que "podría cambiar".... siempre hay que resetearlo antes.

Me explico...

Si la foto del operario cambia, siempre existirá la posibilidad de que la foto del siguiente operario no pueda cargarse, ya sea por que no existe el operario, el operario aun no tiene foto (tal como señalaste), o en caso extremo, cuando el archivo no pueda leerse.

Por eso, apenas ejecutas código para traer los datos del operario, lo primero que se hace es restablecer los datos del formulario, ya sean campos o imagen, así garantizas que no se te queden datos en el paso de uno a otro. Esto, obviamente si no hay una opción de limpieza cada vez que se termina de trabajar con el formulario.

Las soluciones que te han dado son válidas, pero aun así, es una buena practica limpiar o restablecer antes los controles.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar