viernes, 25 de julio de 2014 – #Developer

Hace tiempo me contactó un amigo y me compartió un problema:

Necesito cargar un control ComboBox con información que tengo en una hoja de cálculo. Tanto el control ComboBox como la información la tengo en Excel.

Mauricio
@TheMezth

En lo personal no había utilizado controles en Excel por lo cual desconocía del tema, pero al investigar y encontrar una gran similitud con VB6 fue sencillo poder brindar una respuesta al problema planteado.

Primeros pasos

El primer punto con el que me topé es que en Excel no se manejan formularios (como en el caso de VB6) sino que los controles se encuentran en hojas. Ese es uno de los grandes puntos a tomar en cuenta, ya que desde el código se tiene que hacer referencia a los controles a partir de la hoja en la que se encuentren.

Vamos a crear un libro de ejemplo que nos ayudará a explicar una forma para cargar un ComboBox con información que ya tengamos en una hoja de cálculo:

Voy a crear un libro con 2 hojas de cálculo:

  1. La primera hoja de cálculo la llamaré Información y en ella es en donde tendré mi control ComboBox.
  2. La segunda hoja la llamaré Estados y desde la celda A1 hasta la celda A31 estarán los estados que conforman la República Mexicana.

CargarEstados

Ya con esto listo, vamos a la parte del código.

Escribiendo código

Para trabajar con código en Excel se debe acceder a VBA (Visual Basic for Applications o Visual Basic para aplicaciones). Para acceder a VBA podemos utilizar la combinación de teclas Alt + F11

Dentro de VBA vamos a encontrar a nuestro lado izquierdo la ventana Proyecto

Si no tienes la ventana Proyecto puedes mostrarla presionando las teclas Ctrl + R.

Ventana Proyecto

Vamos a hacer doble clic en el elemento ThisWorkbook y a continuación veremos la ventana de Código de ese elemento (desde aquí ya encontrarás mucho parecido con VB6). En la parte superior de la ventana Código encontrarás 2 listas desplegables: (General) y (Declaraciones).

Ventana Código

Vamos a mostrar las opciones de la lista (General) y vamos a seleccionar Workbook y automáticamente la lista (Declaraciones) mostrará seleccionada la opción Open.

Para empezar la carga de la información que tenemos en la hoja Estados en el control ComboBox1 que insertamos en la hoja de cálculo Información vamos a utilizar el siguiente código:

Para que este código funcione, es necesario que guardemos nuestro libro con una extensión .xlsm (Libro de Excel habilitado para Macros). Cuando abramos nuestro libro automáticamente se ejecutará el código que escribimos.

NOTA: Si al abrir el libro observas una cinta amarilla que te pide autorización para ejecutar Macros, debes aceptar. Si no conoces el código que tiene el libro te recomiendo que no ejecutes las Macros, ya que puede contener código malicioso.

Haz clic aquí para descargar el archivo utilizado en este ejemplo.



¿Este artículo fue de utilidad?

Si tu respuesta es SÍ puedes hacermelo saber con un Gracias e incluso lo puedes compartir a tus seguidores a través de un Tweet.

Opcionalmente puedes realizar un donativo para comprar más café con la finalidad de mantenerme despierto y seguir escribiendo más artículos.