Como guardar una hoja de un libro de excel mediante botón de macros

Tengo un libro de 4 hojas la hoja 1 es una plantilla de una factura he provado con muchas macro y cuando se guarda se guarda todo el libro o elme salen todas error

¿Hay alguna manera de guardar esa hoja con numero factura y fecha solo en una carpeta de mi ordenador?

1 Respuesta

Respuesta
1

Hay varios datos que hacen falta para terminar la macro:

1. ¿Cómo se llama la hoja que quieres guardar?

2. Qué nombre quieres que tenga el nuevo libro, puedes poner un ejemplo.

3. ¿En dónde está el número de factura?

4. La hoja tienes fórmulas, ¿quieres qué se guarden únicamente los valores?

5. Para que se pueda guardar un archivo como fecha, tiene que ser un formato con guiones, ejemplo: 19-jul-2015, ya que no se acepta la diagonal /

'

Te anexo una macro para guardar una hoja como valores, el número de factura lo toma de la celda F2, la hoja que se guarda es al "Hoja", y la ruta es "C:\Trabajo\", ajusta estos valores en la macro:

Sub GuardarHoja()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets("Hoja1") 'Nombre de la Hoja a guardar
    Set l2 = Workbooks.Add
    Set h2 = l2.Sheets(1)
    ruta = "C:\Trabajo\"        'Ruta
    factura = h1.[F2]           'Celda con el número de factura
    fecha = Format(Date, "dd-mmm-yyyy")
    '
    h1.Cells.Copy
    h2.Range("A1").PasteSpecial Paste:=xlPasteValues
    h2.Range("A1").PasteSpecial Paste:=xlPasteFormats
    h2.Range("A1").PasteSpecial Paste:=xlPasteColumnWidths
    l2.SaveAs ruta & factura & fecha & ".xlsx"
    l2.Close False
    MsgBox "Factura guardada", vbInformation
End Sub

S a l u d o s . D a n t e   A m o r

Si es lo que necesitas.

 1 La hoja q quiero guardar se llama factura

2 el nuevo libro q se guarde por el numero factura y fecha 

3 el numero factura esta el la d8

4 la hoja si tiene formulas solo quiero q se guarde los valores

Te anexo la macro con los ajustes:

Sub GuardarHoja()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets("factura") 'Nombre de la Hoja a guardar
    Set l2 = Workbooks.Add
    Set h2 = l2.Sheets(1)
    ruta = "C:\Trabajo\"          'Ruta
    factura = h1.[D8]             'Celda con el número de factura
    fecha = Format(Date, "dd-mmm-yyyy")
    '
    h1.Cells.Copy
    h2.Range("A1").PasteSpecial Paste:=xlPasteValues
    h2.Range("A1").PasteSpecial Paste:=xlPasteFormats
    h2.Range("A1").PasteSpecial Paste:=xlPasteColumnWidths
    l2.SaveAs ruta & factura & fecha & ".xlsx"
    l2.Close False
    MsgBox "Factura guardada", vbInformation
End Sub

Prueba y me comentas.

¡Gracias! 

me sale este error cuando intento guardar otra factura con otro numero factura

'Sub GuardarHoja()
'Por.Dante Amor
Application.ScreenUpdating = False
Set l1 = ThisWorkbook
Set h1 = l1.Sheets("factura") 'Nombre de la Hoja a guardar
Set l2 = Workbooks.Add
Set h2 = l2.Sheets(1)
ruta = "I:\Empresa\TOÑI\EMPRESAS\" 'Ruta
factura = h1.[D6] 'Celda con el número de factura
fecha = Format(Date, "dd-mmm-yyyy")
'
h1.Cells.Copy
h2.Range("A1").PasteSpecial Paste:=xlPasteValues
h2.Range("A1").PasteSpecial Paste:=xlPasteFormats
h2.Range("A1").PasteSpecial Paste:=xlPasteColumnWidths
este me sale de color amarillo l2.SaveAs ruta & factura & fecha & ".xlsx"         
l2.Close False
MsgBox "Factura guardada", vbInformation
End Sub

Lo tengo solucionado

En la hoja numero 2 de nombre factura iva lo he intentado cambiando y no se guarda solo guarda una hoja vacía

'Sub GuardarHoja()
'Por.Dante Amor
Application.ScreenUpdating = False
Set l1 = ThisWorkbook
Set h2 = l1.Sheets("factura") 'Nombre de la Hoja a guardar
Set l2 = Workbooks.Add
Set h2 = l2.Sheets(1)
ruta = "I:\Empresa\TOÑI\EMPRESAS\archivo facturas" 'Ruta
factura = h2.[D7] 'Celda con el número de factura
fecha = Format(Date, "dd-mmm-yyyy")
'
h2.Cells.Copy
h2.Range("A1").PasteSpecial Paste:=xlPasteValues
h2.Range("A1").PasteSpecial Paste:=xlPasteFormats
h2.Range("A1").PasteSpecial Paste:=xlPasteColumnWidths
l2.SaveAs ruta & factura & fecha & ".xlsx"
l2.Close False
MsgBox "Factura guardada", vbInformation
End Sub

¿Dónde esta el error?

¿Funcionó bien la primera vez?

¿Qué mensaje de error te aparece?

Revisa que la carpeta exista, revisa que la carpeta esté bien escrita, revisa espacios en el nombre de la carpeta, revisa que exista el disco I: y revisa que puedas escribir en ese disco.

¡Gracias! 

Todo bien

Gracias por la ayuda funciona muy bien 

hola dante amor gracias por todo me va muy bien

pero  ahora en la misma hoja  he insertado una imagen llamada imagen 1 en las celdas a1 hasta la a4 cuando guardo la factura no me aparece la imagen que es lo que tengo q cambiar para que aparezca esta imagen solo. que es logotipo de la empresa 

gracias

Crea una nueva pregunta para ajustar la macro, dime cómo se llama la imagen que vas a copiar.

Para saber el nombre de la imagen, selecciona la imagen y el nombre te aparece en el cuadro de nombres, el cuadro de nombres está a la izquierda del cuadro de fórmulas.

se llama imagen 1

Crea una nueva pregunta para ajustar la macro. En el desarrollo de la pregunta escribe que va dirigida a Dante Amor

hola dante amor te explico a esta macro que hay que añadir para que en la hoja 1 llamada factura yo le he insertado una imagen "llamada imagen 1" que se encuentra en a1 hasta a4 quisiera si puede ser por favor que se guarde la factura con la imagen puesto que al guardar la factura la imagen desaparece 

gracias 

Sub GuardarHoja()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets("factura") 'Nombre de la Hoja a guardar
    Set l2 = Workbooks.Add
    Set h2 = l2.Sheets(1)
    ruta = "C:\Trabajo\"          'Ruta
    factura = h1.[D8]             'Celda con el número de factura
    fecha = Format(Date, "dd-mmm-yyyy")
    '
    h1.Cells.Copy
    h2.Range("A1").PasteSpecial Paste:=xlPasteValues
    h2.Range("A1").PasteSpecial Paste:=xlPasteFormats
    h2.Range("A1").PasteSpecial Paste:=xlPasteColumnWidths
    l2.SaveAs ruta & factura & fecha & ".xlsx"
    l2.Close False
    MsgBox "Factura guardada", vbInformation
End Sub

Para que revise lo de la imagen debes crear una nueva pregunta en el tema de excel

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas