Vincular fotografía por registro de la base de datos en Microsoft Excel

Valedor soy Joaquin huerta, de cd. De querétaro, me ayudas con lo siguiente mira tengo en excel una hoja que sirve como base de datos. Lo que pretendo es vincular una imagen o fotografía por registro de la base de datos, pero que esta se muestre dentro de una hoja de excel. Crao que en access hay algo así como objeto ole. Ejemplo :
Id. 4451-pa que vincule la foto de una tuerca dentro de excel.
1

1 respuesta

Respuesta
1
A la histórica Ciudad de Querétaro, yo vivo en Tultitlan, Estado de México, no estamos muy lejos...
Hay varias formas de hacer lo que quieres, esta es solo una de ellas, supongamos que tenemos los datos
A1 = Pieza
A2 = 1
A3 = 2
A4 = 3
A5 = 4
A6 = 5
B1 = Nombre
B2 = Pieza 1
B3 = Pieza 2
B4 = Pieza 3
B5 = Pieza 4
B6 = Pieza 5
C1 = Imagen
C2 = Ruta donde este tu imagen
C3 = Ruta
C4 = Ruta
C5 = Ruta
C6 = Ruta
Es decir, en la columna C introducirás las rutas donde estén las imágenes que quieras relacionar con cada registro, por ejemplo
C2 = C:\Mis datos\img1.bmp
C3 = C:\Mis datos\img1.jpg
Ahora, ve al Editor VBA y copia el siguiente código dentro del evento SelectionChange de la hoja donde hayas introducido estos datos...
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Garantizamos que solo este seleccionada una celda
If Target.Cells.Count = 1 Then
'Garantizamos que este dentro de mis datos, por supuesto
'el valor superior es posible manejarlo de forma dinámica
'de modo que se adapte al numero de registros que tenga
If Target.Row > 1 And Target.Row < 7 Then
'Garantizamos que el archivo exista
If Len(Dir(Cells(Target.Row, 3).Value)) > 0 Then
imgfoto.Picture = LoadPicture(Cells(Target.Row, 3).Value)
Else
'Si no existe no mostramos nada
imgfoto.Picture = Nothing
End If
End If
End If
End Sub
Así lo he probado y funciona muy bien, puedes solicitar el ejemplo a mi correo, saludos...
P.D. Por favor, no escribas en mayúsculas, gracias...
Mauricio Baeza
[email protected]
Todo lo que no es dado es perdido
*==========================================*
La presente respuesta ha demandado un tiempo de lectura,
análisis, elaboración y redacción. A cambio, simplemente,
pretendo que te tomes un minuto para FINALIZARLA, si
hubiera satisfecho -en alguna medida- tu requerimiento.
En caso contrario, puedes preguntarme nuevamente
aclarando qué entendí mal o qué faltó.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas