Macro para crear un archivo por hoja

Necesitas separar todas tus hojas en un archivo diferente?

Con este código crearás un archivo por cada una de las hojas que tengas en un archivo.

Código de la macro

Sub ArchivoPorHoja()

Dim nHojas As Integer
Dim i As Integer
Dim Archivo As String
Dim NombreHoja As String
Dim Titulo As String
Dim GuardarComo As Variant
Dim Extension As String

On Error GoTo Errores:

Titulo = «ExcelyFinanzas»
Archivo = ThisWorkbook.Name
nHojas = ThisWorkbook.Sheets.Count

For i = 1 To nHojas
NombreHoja = Sheets(i).Name
Sheets(i).Copy
Seguir:
GuardarComo = Application.GetSaveAsFilename(NombreHoja, «Libro de Excel(.xlsx),.xlsx, Libro de Excel habilitado para macros(.xlsm),.xlsm», , Titulo)
Extension = VBA.Right(GuardarComo, 4)

Select Case Extension
    Case Is = "xlsx"
        ActiveWorkbook.SaveAs GuardarComo
    Case Is = "xlsm"
        ActiveWorkbook.SaveAs GuardarComo, xlOpenXMLWorkbookMacroEnabled
    Case Else
        Exit Sub
End Select

Windows(Archivo).Activate

Next i

Exit Sub

Errores:

If Err.Number = 1004 Then
MsgBox «Tiene que elegir otro nombre para este archivo, este ya esta en uso», vbCritical + vbOKOnly, Titulo
GoTo Seguir
Else
End If
End Sub

Como copiar y pegar el código

Como insertar una macro en la cinta de opciones personalizada

Descargar plantilla