Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Llenar combobox seleccionando archivo con explorador


(adsbygoogle = window.adsbygoogle || []).push({});

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.

function onYtEvent(payload) {
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.


(adsbygoogle = window.adsbygoogle || []).push({});

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