Exportar solo una hoja de libro de excel manteniendo valores

He estado leyendo respuestas suyas a otras preguntas y quizá pueda ayudarme...

Tengo un libro de excel para realizar cotizaciones, Hoja 1 es un formato de COTIZACION, Hoja 2 tiene listado clientes y Hoja 3 tiene listado de items y precios, Hoja 1 toma valores mediante fórmulas BuscarV de la Hoja 2 y 3, lo que deseo es exportar solo la Hoja 1 para enviar al cliente pero el punto está que al exportar solo exporte valores y formatos, no las fórmulas pues evidente hace referencia a la Hoja 2 y 3 que no le llegan al cliente

He tratado de hacerlo con esta macro pero evidente tiene código mal definido.

2 Respuestas

Respuesta

Puedes generar una macro que efectué una copia de la hoja solo como valores

Respuesta
1

Prueba con la siguiente macro:

Desde excel presiona CTRL + F11

Ve al menú insertar \ Modulo

Pegas el codigo:

Sub HOJA_VALORES()
Dim wsh, oWorksheet As Worksheet
Dim NOMHOJA, NOMHOJAF As String
Application.ScreenUpdating = False
NOMHOJA = "RESUMEN"
NOMHOJAF = NOMHOJA & "F"
    For Each oWorksheet In ThisWorkbook.Worksheets
        If oWorksheet.Name = NOMHOJAF Then
            Application.DisplayAlerts = False
            oWorksheet.Delete
            Application.DisplayAlerts = True
            Exit For
        End If
    Next
Worksheets("RESUMEN").Copy Before:=Worksheets("RESUMEN")
Sheets(ActiveSheet.Name).Name = NOMHOJAF
Sheets(NOMHOJAF).Cells.Copy
Sheets(NOMHOJAF).Cells.PasteSpecial xlPasteValues
Range("A1").Select
Application.CutCopyMode = True
End Sub

Cambia de las primeras lineas:

NOMHOJA = "RESUMEN"

por e nombre de tu hoja donde estén los tus datos.

Le das click en el botos de play en color verde.

Revisa tu archivo, te creara una copia con solo valores.

Me comentas.

Excelente Mauricio, funcionó perfecto copiando solo los valores sin arrastrar las fórmulas en una hoja nueva anterior a la de la cotización pero deseo poder salvar solo esa hoja nueva de manera automática , que no me salve las restantes del libro más menos yo lo tenia asi pero me salva todas las hojas del libro y solo quiero esa... CARPETA_SALVA es una constante con la ruta, igual numero, nombre y fecha son constantes que toma de celdas especificas

ActiveSheet.SaveAs CARPETA_SALVA & Numero & " OFERTA DE COTIZACIÓN-" & Nombre & Format(Fecha, " dd-mm-yyyy") & ".xlsm"

Agrega el siguiente código que permite guardar la hoja aparte:

Sheets(NOMHOJAF). Move
ActiveWorkbook.SaveAs Filename:=CARPETA_SALVA & Numero & " OFERTA DE COTIZACIÓN-" & Nombre & Format(Fecha, " dd-mm-yyyy") & ".xlsm", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

Me comentas como te fue. 

Si quieres que te cierre el libro agrega el codigo: antes de msgbox

ActiveWorkbook. Close

Quedaría :

Sub HOJA_VALORES()
Dim wsh, oWorksheet As Worksheet
Dim NOMHOJA, NOMHOJAF As String
Application.ScreenUpdating = False
NOMHOJA = "RESUMEN"
NOMHOJAF = NOMHOJA & "F"
    For Each oWorksheet In ThisWorkbook.Worksheets
        If oWorksheet.Name = NOMHOJAF Then
            Application.DisplayAlerts = False
            oWorksheet.Delete
            Application.DisplayAlerts = True
            Exit For
        End If
    Next
Worksheets("RESUMEN").Copy Before:=Worksheets("RESUMEN")
Sheets(ActiveSheet.Name).Name = NOMHOJAF
Sheets(NOMHOJAF).Cells.Copy
Sheets(NOMHOJAF).Cells.PasteSpecial xlPasteValues
Range("A1").Select
Sheets(NOMHOJAF).Move
ActiveWorkbook.SaveAs Filename:=CARPETA_SALVA & Numero & " OFERTA DE COTIZACIÓN-" & Nombre & Format(Fecha, " dd-mm-yyyy") & ".xlsm", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
ActiveWorkbook.Close
MsgBox "GUARDADO"
Application.CutCopyMode = True
End Sub

Solo acomoda tus variables que anexas el el guardado. 

Me sale un error que alguna de las características no se puede guardar en formato que no sea de macros pienso que puede ser en esta línea fileformat 

FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

Si es que no lo estas guardando con compatibilidad para macro.

FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

Me comentas...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas