Está en la página 1de 5

Cmo crear hojas de Excel con VBA

Por Moiss Ortz el 8 de noviembre del 2012

Crear hojas de Excel con VBA es muy sencillo, solo debemos utilizar la instruccin Worksheets.Add y se crear una nueva hoja en nuestro libro. A continuacin revisaremos diferentes alternativas para utilizar sta instruccin.

Agregar una hoja al pulsar un botn


Supondr que deseamos crear una nueva hoja al pulsar un botn, as que el primer paso ser agregar un botn ActiveX a mi hoja de Excel. Una vez que he agregado este nuevo botn ser suficiente con hacer doble clic sobre l para acceder al evento Click del botn donde colocar la instruccin necesaria para crear una nueva hoja:

Una vez guardado este cdigo ser suficiente con pulsar el botn para crear una hoja de Excel. Observars que se inserta una nueva hoja a la izquierda de la hoja actual:

Indicar un nombre para la nueva hoja


De manera predetermina Excel nombrar las nueva hojas como Hoja4, Hoja5, Hoja6, etc. Si queremos indicar el nombre de la nueva hoja de Excel podemos modificar un poco la instruccin que utilizamos de la siguiente manera:
Worksheets.Add.Name = "Enero"

En este caso se crear una nueva hoja llamada Enero. Al actualizar el cdigo del ejemplo anterior y volver a pulsar el botn Crear hoja veremos la creacin de la nueva hoja con el nombre elegido:

Elegir la ubicacin de la nueva hoja


Como has notado, la hoja recin insertada se coloca a la izquierda de la hoja activa pero es posible indicar la posicin donde deseamos que se inserte la nueva hoja. Por ejemplo, para insertar una hoja llamada Febrero despus de la Hoja2 podemos utilizar la siguiente instruccin:
Worksheets.Add (After:=Worksheets("Hoja2")).Name = "Febrero"

El parmetro After har que Excel inserte la nueva hoja justo despus de la hoja especificada. De esta manera logramos insertar una nueva hoja en alguna ubicacin especfica:

Tambin podemos modificar un poco esta instruccin para hacer que la nueva hoja sea insertada siempre en la ltima posicin:
Worksheets.Add (After:=Worksheets(Worksheets.Count)).Name = "Marzo"

Crear mltiples hojas con VBA


Existen dos mtodos para crear mltiples hojas con VBA. El primer mtodo que mostrar es recomendable cuando no ests interesado en el nombre de las hojas y solamente deseas especificar el nmero de hojas a crear. Esto lo podemos hacer utilizando el parmetroCount de la siguiente manera:
Worksheets.Add After:=Worksheets(Worksheets.Count), Count:=3

Esta instruccin agregar 3 nuevas hojas a nuestro libro y las insertar despus de la ltima hoja. El segundo mtodo que mostrar es un poco ms complejo porque tomar el valor de un rango de celdas y crear las hojas con el nombre especificado en cada una de ellas. Considera el siguiente cdigo:

Este cdigo recorrer las primeras 10 celdas de la columna A y si alguna de ellas tiene un valor diferente a vaco entonces se crear una nueva hoja con dicho valor de la celda. Si quieres aumentar el rango de celdas a considerar solo debes aumentar el valor de la variable Max.

Es muy importante que recuerdes que Excel no permite tener dos hojas con el mismo nombre, y cualquier intento por crear una hoja con un nombre ya existente generar un error. En este cdigo la instruccin On Error Resume Next tiene el

objetivo de evitar el colapso del programa en caso de que se intente crear una nueva hoja con un nombre repetido. A pesar del error la nueva hoja se crear pero utilizando un nombre genrico como: Hoja4, Hoja5, Hoja6, etc. Una mejora evidente para este cdigo ser crear una rutina de validacin de hojas que nos permita decidir si crear o no la nueva hoja, pero eso lo dejaremos para una futura publicacin. Si lo deseas, puedes descargar el libro de trabajo que contiene este ltimo ejemplo.

También podría gustarte