.
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 activex o lo que es lo mismo un combobox incrustado en la hoja de excel, si quieres ver otro ejemplo de combobox incrustado click acá; luego cuando se requiera desplazarse hasta la hoja en la que necesitemos trabajar, basta con hacer click en el respectivo nombre de hoja que está listado en el combobox y automáticamente la macro seleccionará esa hoja; este ejemplo guarda 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. Tal vez en vez de listar las hojas, necesites recorrerlas y extraer datos para hacer un resumen con los datos extraídos, en este link se muestra en detalle dicho ejemplo.
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 hasta ellas sin gran esfuerzo, es muy útil cuando se trabaja con muchas hojas, lo cual resulta un poco engorroso seleccionar hojas en forma manual.
![]() ![]() ![]() |
MASTERCARD PAYONEER |
La macro lo primero que hace es escribir en la columna Z a partir de la fila 1, es decir Z1 el nombre con las hojas del libro, para obtener su nombre hace un bucle recorriendo todas las hojas desde la primera a la última, una vez realizado esto, selecciona el rango donde se listaron las hojas y las carga en el combobox incrustado en Excel o combobox activex; 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 en la macro, todo esto se produce en el evento change del combobox, en otras palabras cuando intentemos seleccionar una hoja se realiza todo el procedimiento descripto; existe otra versión que realiza algo parecido yo diría casi idéntico, la diferencia radica en que en vez de un combobox incrustado, el combobox que lista las hojas de excel está inserto en un userform o formulario de VBA.
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 incrustado en Excel.
Código que se debe insertar en el control Activex Combobox inserto en la página de Excel
Private Sub ComboBox1_Change()
Application.ScreenUpdating = False
Dim fila, ran, gosheet As String
Dim i As Integer
Dim hoja As Worksheet
x = 0
fila = 1
For Each hoja In Worksheets
x = x + 1
‘Escribe el nombre de la hoja en la columna Z
Worksheets(«Hoja1»).Cells(fila, 26) = hoja.Name
fila = fila + 1
Next
‘Creo el rango
ran = Range(«Z1», Range(«Z1»).End(xlDown)).Address
‘Lleno listbox con nombre de hojas
ComboBox1.ListFillRange = ran
gosheet = ComboBox1
‘Selecciono la hoja
Sheets(gosheet).Select
Application.ScreenUpdating = True
End Sub
.
Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends