Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Llenar combobox seleccionando archivo con explorador


.

En el post llenar combobox con datos de otro libro se expuso como buscar datos en un libro dado y llenar un combobox, sucede que a veces el libro de donde se sacan o extraen los datos no siempre se encuentra en el mismo lugar, lo que invalida la macro anteriormente presentada, en el ejemplo de macro actual se da la opción de seleccionar donde se encuentre el libro para cargar los datos en el combobox; otros pos relacionados con llenar datos en un combobox son: combobox que lista archivosllenar combobox con hojas de un librollenar combobox con datos del mismo libro.
Antes de seguir recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.

  

En el presente ejemplo de macro o código de VBA denominado llenar combobox con datos de otro archivo seleccionando el fichero con el explorador de Windows, al abrir el libro de ejemplo y presionar un botón que se encuentra en la hoja1, se muestra el explorador de archivos de Windows que permite seleccionar el archivo que contiene los datos que se van a usar para llenar el combobox que esta en el userform, ello permite seleccionar la dirección y el archivo, otorga la ventaja con respecto al ejemplo llenar combobox con datos de otro libro ya que en este último la dirección y nombre del archivo se encuentran previamente cargado y fijo, a diferencia del presente ejemplo que permite seleccionar el archivo y por ende la dirección y nombre del archivo, siendo más versátil; la desventaja radica en que si selecciona un archivo que no contiene los datos en la columna especificada de donde se van a cargar los datos, puede llevar a errores, por eso de debe saber muy bien que el archivo o fichero seleccionado tiene el formato necesario para poder extraer datos y cargarlos en el combobox sin ningún tipo de problemas, caso contrario podría llevar a resultados inesperados.

Estos datos se cargan al iniciar el userform con Private Sub UserForm_Initialize(); bajo esta declaración se encuentran las sentencias o códigos que hacen abrir el libro del cual se desea extraer los datos, los carga en el combobox y lo cierra, todo este proceso lo hace sin que el usuario pueda ver dichos pasos; la sentencia que permite llamar al explorador de Windows y seleccionar el archivo previamente filtrando archivos de Excel es:

 Application.GetOpenFilename(«Archivos Excel (*.xl*), *.xl*»)

Desde el link del final podrás  bajar el archivo de ejemplo y adaptarlo a tus necesidades, se debe descargar el archivo comprimido y descomprimir en la PC se bajan dos archivos uno que contiene la macro y otro de donde se extraen los datos, se debe seleccionar ese archivo ya que en la columna A contiene los datos necesarios ya que es la que se utiliza para llenar el combobox con los datos; para adaptar este archivo se debe tener presente la columna de donde se obtienen los datos; llenar un combobox con datos de otro libro, es algo que se usa bastante por eso fue el motivo del post, el código se encuentra abierto y sin ningún tipo de restricción para su adaptación.

El vídeo que sigue muestra una explicación más detallada y gráfica de la macro presentada, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo formulario que crea un listado de todas las hojas para poder luego seleccionarlasbuscar en listbox mientras escribes en textboxordenar hojas libro excel por su nombreconectar Excel con Access y muchos ejemplos más.


if (payload.eventType == ‘subscribe’) {
// Add code to handle subscribe event.
} else if (payload.eventType == ‘unsubscribe’) {
// Add code to handle unsubscribe event.
}
if (window.console) { // for debugging only
window.console.log(‘YT event: ‘, payload);
}
}





Código que se inserta en un módulo


Sub muestrauser()
UserForm1.Show
End Sub
     

Código que se inserta en un userform
Private Sub CommandButton1_Click()

Unload Me

End Sub

Private Sub CommandButton2_Click()

Sheets(«hoja1»).Cells(3, 3) = ComboBox1

Unload Me

End Sub


Private Sub UserForm_Initialize()

Application.ScreenUpdating = False

On Error Resume Next

Dim myfile As String


myfile = Application.GetOpenFilename(«Archivos Excel (*.xl*), *.xl*»)

Workbooks.Open Filename:=myfile, UpdateLinks:=0

Sheets(«hoja1»).Cells(2, 1).Select

While ActiveCell <> Empty

ComboBox1.AddItem ActiveCell

ActiveCell.Offset(1, 0).Select

Wend

ActiveWorkbook.Close

Application.ScreenUpdating = True

End Sub

Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.


.

If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.

Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends