Agregar una hoja al final de un nuevo libro

Hola escribo nuevamente, pues tengo dificultades nuevamente con mi macro, que copia los valores y formatos a un nuevo libro, yo realice las pruebas con tres hojas y hasta ahí corría sin problemas, pero sucede que no son tres las que tengo que copiar sino 8 y probé varias opciones pero la que anda más cerca es la siguiente instrucción ActiveWorkbook.Worksheets.Add
el problema es que este código inserta una hoja al principio y yo necesito que la inserte después de la hoja 3 del nuevo libro.
La macro hasta el momento esta así:
Sub CopiarHojas1()
Dim h1 As String
Dim h2 As String
Dim h3 As String
Dim h4 As String
h1 = "Factura1"
h2 = "Factura2"
h3 = "Factura3"
h4 = "Factura4"
    Cells.Select
    Sheets(Array(h1, h2, h3, h4)).Select
    Sheets(h1).Activate
    Selection.Copy
    Workbooks.Add
    ActiveWorkbook.Worksheets.Add 'Coloca la hoja al principio, yo necesito que la inserte al final
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Sheets(Array("Hoja1", "Hoja2", "Hoja3", "Hoja4")).Select
    Sheets("Hoja1").Activate
    Sheets("Hoja1").Name = h1
    Sheets("Hoja2").Activate
    Sheets("Hoja2").Name = h2
    Sheets("Hoja3").Activate
    Sheets("Hoja3").Name = h3
    Sheets("Hoja4").Activate
    Sheets("Hoja4").Name = h4
End Sub
Desde ya agradezco tu ayuda.
Saludos
Respuesta
1
Si deseas agregar una hoja nueva al libro debes utilizar : Sheets. Add
Tu tienes : Workbooks. Add y eso agrega un nuevo "libro"
Bueno creo que no me explique bien, pues la instrucción que tu me envías es para agregar hojas a un libro que ya esta abierto.
Mi problema es el siguiente, yo selecciono 8 hojas de un libro que tienen una serie de fórmulas, esas hojas las selecciono todas y las copio y las llevo a un libro nuevo y las pego solo los valores y el formato, el problema es que el nuevo libro por defecto tiene tres hojas y ahí la macro me da un error me dice que el tamaño de la copia no es el mismo donde voy a copiar. Por eso que la instrucción: ActiveWorkbook.Worksheets.Add me soluciona en parte el problema, pues me desordena las hojas en el nuevo libro ya que me coloca al principio del nuevo libro la hoja 4, espero haberme explicado mejor y me puedas ayudar.
Desde ya gracias.
Ok, para eso no es necesario formular nada, simplemente ve a las opciones de Excel y en el parámetro que indica "al crear nuevos libros" aparece una opción que indica :
"incluir este numero de hojas": por efecto segurametne tienes 4, solo cambia ese numero por 8 o als que necesites, de esta forma cada vez que crees un nuevo libro este ya vendrá con el numero de hojas que necesitas.
Si esa es una opción, pero no quisiera modificar Excel para resolver un problema puntual, de todas formas agradezco tu ayuda.
Si sabes de una forma de lograrlo por código me seria de gran utilidad.
Nuevamente mil gracias
Ok entonces, con esta linea estamos:
ActiveWorkbook.Sheets.Add after:=Worksheets(Worksheets.Count)
Esto agrega una hoja al final de la última que tenga el libro
Bye

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas