Exportar hoja de calculo a otro libro

hola a todos los expertos en macros,, tengo un problema trato de "exportar" o "guardar como", una hoja de calculo desde otra hoja, la cual esta con formulas la otra hoja la cual quiero exportar, actualmente uso este macros pero una ves guardado trato de abrir el archivo exportado y me dice que se encuantra dañado.... Porfavor no se que estoy haciando mal..nececito una ayuda.

Private Sub EXPORT_lista_Click()
    Application.DisplayAlerts = False
 Sheets("IMPRIME").Select
    template_file = ActiveWorkbook.FullName
    fileSaveName = Application.GetSaveAsFilename( _
                   InitialFileName:="C:\" + _
                                    VBA.Strings.Format("libreta de secciones") + ".xlsm", _
                   fileFilter:="Text Files (*.xlsm), *.xlsm")
    If fileSaveName = False Then
        Exit Sub
    End If
    'cria uma cópia da pasta de trabalho atual da planilha atual
    Dim newBook As Workbook
    Dim plan As Worksheet
    Set newBook = Workbooks.Add
    ThisWorkbook.ActiveSheet.Copy Before:=newBook.Sheets(1)
    'exclui as demais planilhas
    For Each plan In newBook.Sheets
        If plan.Name <> ActiveSheet.Name Then
            newBook.Worksheets(plan.Index).Delete
        End If
    Next
    newBook.SaveAs FileName:= _
                          fileSaveName, FileFormat:=xlTextWindows, _
                          CreateBackup:=False
    'fecha a pasta de trabalho gerada
    newBook.Close SaveChanges:=True
    Set newBook = Nothing
    Sheets("DATOS").Select
    


    MsgBox "Se ha exportado correctamente! ", vbInformation, "LISTA"
End Sub

1 Respuesta

Respuesta
1

Te anexo la macro con los cambios

Private Sub EXPORT_lista_Click()
    Application.DisplayAlerts = False
    Sheets("IMPRIME").Select
    template_file = ActiveWorkbook.FullName
    fileSaveName = Application.GetSaveAsFilename( _
                   InitialFileName:="C:\" + _
                   VBA.Strings.Format("libreta de secciones") + ".xlsm", _
                   fileFilter:="Text Files (*.xlsm), *.xlsm")
    If fileSaveName = False Then
        Exit Sub
    End If
    'cria uma cópia da pasta de trabalho atual da planilha atual
    Dim newBook As Workbook
    Dim plan As Worksheet
    Set newBook = Workbooks.Add
    ThisWorkbook.ActiveSheet.Copy Before:=newBook.Sheets(1)
    'exclui as demais planilhas
    For Each plan In newBook.Sheets
        If plan.Name <> ActiveSheet.Name Then
            newBook.Worksheets(plan.Index).Delete
        End If
    Next
    '
    newBook.SaveAs Filename:=fileSaveName, _
        FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
    'fecha a pasta de trabalho gerada
    newBook.Close SaveChanges:=True
    Set newBook = Nothing
    Sheets("DATOS").Select
    MsgBox "Se ha exportado correctamente! ", vbInformation, "LISTA"
End Sub

Saludos.Dante Amor

No olvides valorar la respuesta.

Man gracias por el aporte incondicional del macros pero tengo un problema, el archivo que me exporta el macros, son con extensión del archivo original, me gustaría por favor si esos datos solo fueran valores y sin extensión...

¿Quieres un archivo texto o un archivo de excel?

un archivo excel

Por el archivo que me exporta sale con las fórmulas y la extensión del archivo excel original, y solo me gustaría obtener los valores de esa hoja con el formato de cada celda en un archivo nuevo

Así quedaría

Private Sub EXPORT_lista_Click()
    Application.DisplayAlerts = False
    Sheets("IMPRIME").Select
    template_file = ActiveWorkbook.FullName
    fileSaveName = Application.GetSaveAsFilename( _
                   InitialFileName:="C:\" + _
                   VBA.Strings.Format("libreta de secciones") + ".xlsx", _
                   fileFilter:="Text Files (*.xlsx), *.xlsx")
    If fileSaveName = False Then
        Exit Sub
    End If
    'cria uma cópia da pasta de trabalho atual da planilha atual
    Dim newBook As Workbook
    Dim plan As Worksheet
    Set newBook = Workbooks.Add
    ThisWorkbook.ActiveSheet.Copy Before:=newBook.Sheets(1)
    'exclui as demais planilhas
    For Each plan In newBook.Sheets
        If plan.Name <> ActiveSheet.Name Then
            newBook.Worksheets(plan.Index).Delete
        End If
    Next
    '
    newBook.SaveAs Filename:=fileSaveName
    'fecha a pasta de trabalho gerada
    newBook.Close SaveChanges:=True
    Set newBook = Nothing
    Sheets("DATOS").Select
    MsgBox "Se ha exportado correctamente! ", vbInformation, "LISTA"
End Sub

El resultado sale genial de esta hoja exportada, pero las celdas de esta hoja exportada están con vinculo y fórmulas del archivo excel origen, habrá alguna forma que en las celdas solo tengas solo los valores y el formato del archivo que quiero exportar

Desde un principio de la pregunta hubieras puesto qué es lo que necesitas.

Lo que hice fue arreglar el problema que tenías de que el archivo estaba dañado.

Valora esta pregunta y crea una nueva pregunta explicando lo que realmente necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas