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.
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 mbs@inbox.net 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ó.