Anda di halaman 1dari 3

Hola amigos, aprovecho la ocasion para dar mi primer aporte a esta comunidad.

Es pero y sea de utilidad lo que aqui expondre. =============================================================== Alguna vez han querido que su Hoja de Excel muestre una foto acerca de alguien o de algo acerca de los datos que usan? ;) [img]http://01010101.fileave.com/00.jpg[/img] [b]NOTA:[/b] Este proyecto se apoya con imagenes desde una carpeta llamada "foto s", la cual estara localizada en el mismo lugar donde coloquen el archivo de Exc el que hagan. Bueno para todos aquellos que si quieren, aqui les enseare como le pueden hacer. Sigan las instrucciones y no fallaran en su intento. [b][u]Instrucciones para mostrar una imagen externa seleccionando un dato de una lista desplegable: [/u][/b] 1. Preparamos la hoja donde mostraremos el proyecto, en mi caso seleccione las c olumnas desde la A hasta la Z y les di un ancho de columna igual a 20 pixeles. [img]http://01010101.fileave.com/01.jpg[/img] 2. Colocamos los datos necesarios para que se muestren las fotos, en mi caso la informacion la puse en la misma hoja, pero puede estar en otra o inclusive en ot ro libro de excel. Yo cambie el ancho de columna de K a 100 pixeles y del L a 40 pixeles, con el fin de que sea mas estetica la muestra de informacion. [img]http://01010101.fileave.com/02.jpg[/img] 3. Insertaremos una lista desplegable. Para esto primero seleccionamos la celda donde estara la lista y luego iremos a la pestaa de DATOS haciendo clic donde dic e VALIDACION DE DATOS, hecho esto aparecera la ventana de Validacion de datos. E n la pestaa CONFIGURACION cambia el valor de PERMITIR a "Lista" y selecciona el o rigen de tus datos. En este caso la lista esta en la celda K2 y el origen de los datos estan desde la celda K7 hasta la K9. [img]http://01010101.fileave.com/03.jpg[/img] 4. Al termino de estos pasos ya tendremos disponible nuestra lista desplegable, la cual vamos a utilizar para que cambie la foto que se mostrara. [img]http://01010101.fileave.com/04.jpg[/img] 5. Para poder ayudarnos a desplegar la foto "correcta" nos valdremos del valor d el ID de la persona, no del "nombre" en si. Para ello utilizaremos la formula "C ONSULTAV" y el numero de ID vinculado al Nombre lo ocultaremos preferentemente d etras de la misma foto. En mi caso tambien utilice la formula "SI" para que no m ostrara algun valor si es que no se seleccionaba un nombre. La formula final utilizada en la celda E8 fue "=SI(K2="","",CONSULTAV(K2,K7:L9,2 ,FALSO))" NOTA: Si es posible utilizar el nombre como variable para la foto, pero como muc hos sabran, siempre se vinculan mejor los datos utilizando "ID's" sobre todo si utilizamos grandes bases de datos. Yo en lo personal recomiendo este metodo.

[img]http://01010101.fileave.com/05.jpg[/img] 6. Ahora nos toca escribir un codigo en VB el cual estara vinculado directamente a nuestra Hoja1, y sera este codigo el que nos ayude finalmente a desplegar la foto en nuestro proyecto. Para esto iremos a la pestaa de PROGRAMADOR y luego har emos clic donde dice VER CODIGO, hecho esto aparecera la ventana de Microsoft Vi sual Basic para Aplicaciones. En automatico abrira el codigo existente en la Hoj a1 del Libro de excel que estas usando, asi que solo resta escribir lo siguiente : [code] Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Target.Cells = Range("K2") Then foto = Range("E8").Value Application.ScreenUpdating = False foto = foto & ".jpg" ruta = ActiveWorkbook.Path & "\fotos\" & foto Me.Shapes("foto_del").Delete Set fotografia = Me.Pictures.Insert(ruta) With Range("C5:H12") Arriba = .Top Izquierda = .Left Ancho = .Offset(0, .Columns.Count).Left - .Left Alto = .Offset(.Rows.Count, 0).Top - .Top End With With fotografia .Name = "foto_del" .Top = Arriba .Left = Izquierda .Width = Ancho .Height = Alto End With Set fotografia = Nothing Application.ScreenUpdating = True End If End Sub [/code]. [img]http://01010101.fileave.com/06.jpg[/img] [b]NOTA:[/b] Los valores que pueden modificar serian K2, E8, y C5:H12. Como ayud a extra les doy una breve explicacion de los pasos mencionados arriba: [code]Private Sub Worksheet_Change(ByVal Target As Range)[/code] 'Si hay errores, que contine [code]On Error Resume Next[/code] 'Si cambiamos el dato de la celda I2, cambiara la foto mostrada [code]If Target.Cells = Range("I2") Then foto = Range("E8").Value[/code] 'Ocultamos el procedimiento [code]Application.ScreenUpdating = False[/code] 'ahora le aadimos la extensin "jpg" [code]foto = foto & ".jpg"[/code] 'buscaremos la foto en el mismo directorio donde tenemos este fichero de excel [code]ruta = ActiveWorkbook.Path & "\fotos\" & foto[/code] 'para asegurarnos de no llenar de fotos la hoja, borramos la foto anterior (si e s que habia una) [code]Me.Shapes("foto_del").Delete[/code] 'creamos el objeto "fotografia" con la foto insertada

[code]Set fotografia = Me.Pictures.Insert(ruta)[/code] 'haremos que la foto ocupe desde C5 hasta H12, que es el tamao que requerimos par a que no salgan fotos grandes o chicas [code]With Range("C5:H12") Arriba = .Top Izquierda = .Left Ancho = .Offset(0, .Columns.Count).Left - .Left Alto = .Offset(.Rows.Count, 0).Top - .Top End With[/code] 'le ponemos un nombre al objeto "fotografia" 'para poder borrarla cuando cambie la celda E8 [code]With fotografia .Name = "foto_del" .Top = Arriba .Left = Izquierda .Width = Ancho .Height = Alto End With[/code] 'eliminamos el objeto "fotografia" [code]Set fotografia = Nothing[/code] 'desocultamos el procedimiento [code]Application.ScreenUpdating = True End If End Sub [/code]. 7. Por ultimo, solo nos resta probar nuestro proyecto guardando el Libro como ti po: Libro de Excel habilitado para macros (*.xlsm) - Office 2007; y colocando lo s archivos de las fotos de manera numerada dentro de la carpeta "fotos" que haya mos creado para tal fin. Ejemplo de los archivos 1.jpg, 2.jpg, 3.jpg, etc... [img]http://01010101.fileave.com/07.jpg[/img] [img]http://01010101.fileave.com/08.jpg[/img] [b]NOTA:[/b] Visualizacion de la carpeta llamada "fotos", lugar desde donde se t oman las imagenes externas que se muestran en el archivo de Excel. El tamao de la s imagenes en mi caso fueron a razon de 6x8, de 358x480 pixeles exactamente (not ese que faltan 2 pixeles en el eje horizontal para ser "exacto", pero esto fue p ara que la imagen calzara perfecta dentro de las celdas C5:H12 del archivo de Ex cel y que el marco se viera bien). Es todo amigos, espero y les funcione tan bien como a mi. Les adjunto el archivo que yo hice. [url]http://01010101.fileave.com/Tema1.zip[/url] 8-) ...bylexus 2011

Anda mungkin juga menyukai