Crear macro para guardar archivo con nombre celda

Tengo un archivo en excel 2007 y necesito crear macro para que me guarde una copia en PDF de la hoja en otra carpeta y que el nombre del nuevo archivo sea el contenido de una celda especifica, en este caso B1

2 Respuestas

Respuesta
3

Te dejo unas instrucciones, ajustá el nombre de la carpeta o ruta:

Sub guardaPDF()
'x Elsamatilde
nbreLibro = Range("B1")
ruta = "D:\carpetas Datos\descargas\TRABAJO\"
 ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
 ruta & nbreLibro & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:= _
 True, IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub

PD) Si tenés PDF como impresora predeterminada, podrías imprimir la hoja en lugar de guardarla.... otra opción.

Sdos y no olvides finalizar la consulta.

Elsa te agradezco el dato , salio excelente...un solo detalle más para completar , se podrá lograr que una vez que copie el archivo en pdf, el original en excel se cierre sin guardar los cambios?

Mil gracias!!

Fernandonine

A continuación agregá entonces:

ActiveWorkbook.Close False

Sdos!

Perdón la insistencia , pero no logro que guarde el archivo con el nombre de la celda.

Gracias

¿Qué parte no estoy entendiendo?:

'... Te agradezco el dato, salio excelente...'

'... No logro que guarde el archivo con el nombre de la celda.'...

Explicame todo nuevamente x favor y escribí la macro que armaste.

Te paso la formula que cargue.....

Sub Botón1_ Haga_click_en()

<address>nbreLibro = Range("B1") </address><address>ruta = "C=\Users\fernando\Desktop\Ordenes de Trabajo\"</address><address>ActiveSheet.ExportAsFixedFormat Type:xlTypePDF;Filename:= _</address><address>ruta & nbreLibre & ".pdf" ,</address><address>Quality:=xlQualityStandar,IncludeDocProperties= _</address><address>True, IgnorePrintAreas:=False, OpenAfterPublish:=True</address><address>ActiveWorkbook.CloseFalse</address><address>End sub</address><address> </address><address>El cambio que realize para que genere el archivo en PDF fue ,en lugar de nbreLibro = Range("B1")..puse nombreLibro=Range("B1") y lo generó pero no lo guardo con el nombre de la celda, sino con el nombre Ordenes de Trabajo que es la carpeta donde quiero que lo guarde.</address><address>Espero haber sido claro y mil gracias por todo.</address><address>Fernandonine</address>

Te la paso correcta con el nuevo nombre de la variable, xq se ve bastante mal en tu entrada anterior.

Tenés que asegurarte que realmente B1 tenga un nombre apto para archivos PDF.

Sub Boton1_Haga_click_en()
nombreLibro = Range("B1")
ruta = "C:\Users\fernando\Desktop\Ordenes de Trabajo\"
     'ruta = "D:\JAVIER\SISTEMA-TURNOS\"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ruta & nombreLibro & ".pdf", Quality:=xlQualityStandar, IncludeDocProperties:= _
True, IgnorePrintAreas:=False, OpenAfterPublish:=True
ActiveWorkbook.Close False
End Sub

Dejé una prueba de mi ruta para que veas que está probada con esta sintaxis .

Recordá de 'guardar' antes de ejecutarla xq se te cerrará el libro sin guardar los cambios (x la última instrucción).

Sdos

Elsa

Elsa finalmente funcionó,el tema era que la celda B1 tenia la formula =AHORA() ,en cuanto puse otra celda sin formula quedo bárbaro.

Muchas gracias por el conocimiento,pero principalmente por la paciencia.

Slds

Fernandonine

Respuesta

Me encantaría saber como se hace deboser la persona más torpe dentro de hacer una macro

Tengo un libro excel con 5 hojas en este orden ; registrar, factura, precios clientes y registros y quisiera guardar en pdf de la parte hoja de factura la parte entre las celdas C7 a J42 y tomarcomo nombre del pdf D11y si puede ser guardarlo en esta dirección "C:\Users\VT\Documents\Facturas"

Me encantaría saber como se hace debo ser la persona más torpe dentro de hacer una macro

Tengo un libro excel con 5 hojas en este orden ; registrar, factura, precios clientes y registros y quisiera guardar en pdf de la parte hoja de factura la parte entre las celdas C7 a J42 y tomarcomo nombre del pdf D11y si puede ser guardarlo en esta dirección "C:\Users\VT\Documents\Facturas" hasta el momento e puesto esto: (pero da error)

Sub PDF()
'
' PDF Macro
'

'
Application.ScreenUpdating = False
FACTURA = Range("D11")
ruta = "C:\Users\VT\Documents\Facturas"
'ruta = "C:\Users\VT\Documents\Facturas"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ruta & Facturaautomatica4 & ".pdf", Quality:=xlQualityStandar, IncludeDocProperties:= _
True, IgnorePrintAreas:=False, OpenAfterPublish:=True
ActiveWorkbook.Close False
Application.ScreenUpdating = True
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas