Crear Libro excel y sus hojas en vba por medio tabla

27/02/2005 - 16:09 por ana_rg | Informe spam
Hola a todos

Me gustaria saber como podria progranar en VBA:
Tengo una tabla en una hoja de cálculo y en la columna A tenemos el
nombre de los libros nuevos que quiero crear y en la columna B el
nombre de las hojas que quiero crear de cada libro correspondiente.

A B
1 LIBROa Hoja1a
2 LIBROa Hoja2a
3 LIBROa Hoja3a
4 LIBROb Hoja1b
5 LIBROb Hoja2b
6 LIBROc Hoja1c


Muchisimas gracias
Saludos Ana Maria
 

Leer las respuestas

#1 Fernando Arroyo
27/02/2005 - 20:35 | Informe spam
Prueba con el siguiente código:

Sub CrearLibros()
Dim intHojasEnLibroNuevo As Integer, strNombreLibro As String, n As Integer
Dim wkbLibro As Workbook, wksHoja As Worksheet

With Application
intHojasEnLibroNuevo = .SheetsInNewWorkbook
.SheetsInNewWorkbook = 1

With Worksheets("Hoja1") 'Hoja donde se encuentra el índice (se supone que el índice empieza en A1)
For n = 1 To .[A65536].End(xlUp).Row
If .Range("A" & n) <> strNombreLibro Then
If Not wkbLibro Is Nothing Then wkbLibro.SaveAs "C:\" & strNombreLibro 'Añadir a C:\ la ruta
strNombreLibro = .Range("A" & n)
Set wkbLibro = Workbooks.Add
wkbLibro.Worksheets(1).Name = .Range("B" & n)
Else
Set wksHoja = wkbLibro.Worksheets.Add(after:=wkbLibro.Worksheets(wkbLibro.Worksheets.Count))
wksHoja.Name = .Range("B" & n)
End If
Next n
End With

wkbLibro.SaveAs "C:\" & strNombreLibro

.SheetsInNewWorkbook = intHojasEnLibroNuevo
End With

Set wksHoja = Nothing
Set wkbLibro = Nothing
End Sub


Un saludo


Fernando Arroyo
MS MVP - Excel


"Ana_Maria" escribió en el mensaje news:
Hola a todos

Me gustaria saber como podria progranar en VBA:
Tengo una tabla en una hoja de cálculo y en la columna A tenemos el
nombre de los libros nuevos que quiero crear y en la columna B el
nombre de las hojas que quiero crear de cada libro correspondiente.

A B
1 LIBROa Hoja1a
2 LIBROa Hoja2a
3 LIBROa Hoja3a
4 LIBROb Hoja1b
5 LIBROb Hoja2b
6 LIBROc Hoja1c


Muchisimas gracias
Saludos Ana Maria

Preguntas similares