Formulario con combobox lista hojas de Excel







En un post anterior se explicó como listar hojas de excel y llenar combobox activex o incrustado en Excel, ahora te voy a mostrar como lograr algo parecido, pero en vez de usar un combobox incrustado en Excel o activex, el combobox va a estar en un formulario o userform de VBA, en otras palabras en esta macro de Excel o procedimiento de VBA voy a explicar como hacer un listado de hojas de Excel y llenar un combobox con ellas, si lo que quieres es recorrer las hojas y hacer un resumen con los datos extraídos de las hojas, deberías ver el link.

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.


  

Cuando un libro cuenta con 20 o más hojas, con menos también; dependiendo de la complejidad del libro, se hace indispensable contar con una hoja que resuma el nombre de la totalidad de hojas del libro y que tenga un combobox con el listado de todas las hojas, donde se pueda seleccionar la hoja que se necesite y automáticamente se desplace hacia ella; desde luego que lo explicado se puede adaptar al libro con el cual trabajamos, el código o Macro de VBA determina cual es el nombre de cada una de las hojas del libro de Excel y hace un listado de todas sin tener que modificar el código.

El ejemplo consiste en una macro o procedimento de VBA que hace un listado de todas las hojas del libro, es decir determina su nombre; luego las agrega en un combobox insertado en userform, si quieres ver un  ejemplo, pero de combobox incrustadoen hoja de excel click acá.
MASTERCARD PAYONEER


Desde el link del final se puede descargar el archivo de ejemplo de esta manera podrás ver su funcionamiento en forma más detallada. El código de VBA o Macro de Excel que se presenta más abajo lista las hoja del libro de excel y las presenta en un combobox para que puedan ser seleccionadas y desplazarse hacia ellas sin gran esfuerzo; esta macro que tiene utilidad cuando se trabaja con libros con muchas hojas o se tiene algún aplicativo basado en Excel y se da la opción al usuario de eligir realizar una determinada carga de datos y mediante el combobox seleccionar la hoja necesaria.

Al cargarse el userform se inicia la macro, haciendo un bucle y recorriendo todas las hojas desde la primera hasta la última del libro de Excel, una vez realizado esto, carga el nombre de cada una de las hojas del libro en el combobox que está inserto en el userform o formulario; una vez listadas las hojas quedan en condiciones de ser seleccionadas y la macro automáticamente cambia el foco a la hoja que se seleccione, existe otra versión que realiza algo parecido yo diría casi idéntico, la diferencia radica en que en vez de un formulario con un combobox, el combobox que lista las hojas de Excel, está inserto en la misma hoja de Excel.

El ejemplo presentado tiene en cierta medida una relación con la macro que busca un dato en todas las hojas del libro y hace un lista de las hojas donde lo encontró, es decir lista todas las hojas en donde se halló el dato buscado, es bastante interesante ya que no solo busca un dato en hoja como normalmente se requiere, sino que lo buscan en todas las hojas del libro y además lista en que hoja encontró el dato buscado.

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.









En el link del final podrás descargar el ejemplo y adaptarlo a lo que necesites, en resumen la macro lista las hojas y las agrega a un combobox que está en un formulario de VBA.


Código que se debe insertar  en un formulario


Private Sub ComboBox1_Change()
On Error Resume Next
Application.ScreenUpdating = False
'Ir a la hoja
Irhoja = ComboBox1
Sheets(Irhoja).Select
Application.ScreenUpdating = True
End Sub

Private Sub CommandButton1_Click()
Unload Me
End Sub

Private Sub UserForm_Initialize()
Dim hoja As Worksheet
ComboBox1.Clear
For Each hoja In Worksheets
Mysheet = hoja.Name
ComboBox1.AddItem Mysheet
Next
End Sub


Código a insertar en un módulo
 Sub muestrauserform()
 UserForm1.Show
 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