jueves, 8 de octubre de 2015

USO DEL CONTROL IMAGEN EN VBA EXCEL

Regularmente en nuestros programas en VBA tendremos que utilizar imágenes, para tal fin tenemos el control IMAGEN.

Este control como todos los demás tienen varias propiedades, algunas de ellas son:

NAME: Permite asignarle un nombre a el objeto el cual nos permitirá identificarlo dentro del código.

AUTOSIZE: nos permite ajustar la imagen al tamaño del control, dependiendo si le asignamos el valor true o false.

BORDERSTYLE: a esta propiedad podemos asignarle dos valores 0 sin borde 1 con borde.


PICTURE: Esta es la propiedad más importante pues nos permite asignar la imagen al control.

Para ejemplificar el uso de la propiedad imagen escribí una macro que nos permite asignar diferentes imágenes al control, ejemplos como este los puedes encontrar en el curso online de excel.

En la hoja de cálculo están registradas las direcciones en el PC de cuatro imágenes


Tenemos un formulario compuesto por un control combobox( en una entrada anterior vimos su uso) un botón de comando y el control de imagen


Llenamos el control combobox con la información de la hoja de cálculo, para dicho fin utilizamos el siguiente código, esta rutina recibe como parámetro el formulario:


Expliquemos un poco el código anterior, la variable WS de tipo worksheet representa la hoja de cálculo en la cual tenemos nuestros datos, la variable que hemos llamado final no servirá para identificar la última fila con datos en la hoja de Excel. Después de asignar la hoja de cálculo a la variable WS con la instrucción ( set ws _ thisworkbook.worksheets(“HOJA1”)) y calcular la última fila con datos con la instrucción (final = ws.range(“A1”).End(xlDown).Row), empezamos un ciclo que va desde la fila 2 hasta la fila final y durante el cual asignamos a la propiedad additem del combobox la información que tiene la hoja de cálculo en la fila i.

Para invocar la rutina “LLENAR_COMBO” en el código del botón de comando agregamos este código donde el parámetro “ME” representa el formulario:


Cuando el usuario haga clic o seleccione un dato del combobox  ejecutamos el siguiente código:


Lo que hacemos con este código es invocar la rutina “mostrar_imagen”  pasándole como parámetro la dirección de imagen seleccionada y el formulario.

Este es el código que llena el control de imagen


Cargamos la imagen en el control a la propiedad picture  con la instrucción LoadPicture(dirección), asignamos true a la propiedad autosize para que la imagen se ajuste al tamaño del control y le asignamos borde ( el valor fmBordeStyleSingle es igual a 1).

Para aprender más sobre este y otros temas visita el curso online  de excel.

En este enlace encontraras una colección de mas de 20 macros que podrás descargar.

Para automatizar tus proceso en excel escríbeme a macrosymacros1@gmail.com.

Espero que esta macro te sea de utilidad, por favor deja tus comentarios.


1 comentario:

  1. Buenas tardes,

    Debo hacer la búsqueda de la información de ciertos productos en un formulario, pero dentro la información debo mostrar unas imágenes correspondientes a este producto. Ya logre mostrar la información de texto con el botón de buscar sobre unos text box, pero no sé cómo hacer para que aparezca también la imagen al darle al botón buscar. (Las imágenes están sobre la misma hoja de excel).

    Agradezco pueda solucionarme la duda.

    ResponderEliminar