6 febrero, 2025

AÑADIR UN NÚMERO ESPECÍFICO DE HOJAS A VARIOS ARCHIVOS CON VBA

Hola a todos:

Hace unos días me enviaron una consulta en la que me preguntaban la forma de realizar un proceso en el que pudiese seleccionar varios archivos y crear en ellos tantas pestañas como sean especificadas.

Bien, esta es una consulta relativamente sencilla, evidentemente requiere programación pero con la información de algunos post publicados en esta web se puede resolver perfectamente.

Probaremos con un libro que contiene 2 hojas:

AÑADIR UN NUMERO ESPECIFICO DE HOJAS A VARIOS ARCHIVOS CON VBA

Y queremos que tenga 5 hojas (contando con las que ya tenemos). Pues bien, para hacer este trabajo utilizaremos la siguiente macro:

Sub AÑADIR_HOJAS()
'Declaramos variables
Dim nArchivo As Variant, i As Long
Dim nHoja As Long, n As Long
Dim iHoja As Long
'Indicamos el número de hojas que queremos crear en nuestro libro
iHoja = Sheets("Hoja1").Cells(1, 2)
'Seleccionamos los archivos
Application.ScreenUpdating = False
nArchivo = Application.GetOpenFilename(FileFilter:="Excel (*.xls*),*.xls", _
Title:="SELECCIONAR ARCHIVOS", MultiSelect:=True)
'Si no seleccionamos nada salimos del proceso
If Not IsArray(nArchivo) Then
Exit Sub
Else
'Recorremos y abrimos cada archivo
For i = LBound(nArchivo) To UBound(nArchivo)
Workbooks.Open Filename:=(nArchivo(i))
'Contamos el número de hoja
nHoja = ActiveWorkbook.Worksheets.Count
'Seleccionamos la última hoja
Worksheets(nHoja).Select
'Añadimos hojas hasta completar las 5 que hemos indicado
For n = 1 To (iHoja - nHoja)
ActiveWorkbook.Sheets.Add after:=ActiveSheet
Next n
'Desactivamos advertencias y avisos y guardamos el archivo
Application.DisplayAlerts = False
ActiveWorkbook.Close SaveChanges:=True
Next i
End If
End Sub

Cuando ejecutamos el código, nos solicitará seleccionar uno o varios archivos y marcaremos en nuestra hoja el número de hojas a crear en los archivos que hemos seleccionado.

Luego, tras un loop que recorre cada libro y cuenta el número de hojas, pasaremos un segundo bucle que creará a partir de las hojas que ya tenemos el resto de hojas que deseamos generar. Este es el resultado:

AÑADIR UN NUMERO ESPECIFICO DE HOJAS A VARIOS ARCHIVOS CON VBA1

Y esta ha sido la respuesta a la consulta : )

Descarga el archivo de ejemplo pulsando en: AÑADIR UN NUMERO ESPECIFICO DE HOJAS A VARIOS ARCHIVOS CON VBA

¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.

Donate Button with Credit Cards

¡¡Muchas gracias!!

Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies

Comparte este post

Si te ha gustado o tienes alguna duda, puedes dejar aquí tu comentario.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies