Guardar/Imprimir en PDF/nombre desde la hoja |
Responder |
Autor | |
Gladiador
Asiduo Unido: 22/Junio/2006 Localización: Venezuela Estado: Sin conexión Puntos: 220 |
Opciones de entrada
Gracias(0)
Enviado: 14/Septiembre/2022 a las 16:32 |
Hola amigos, nuevamente con una consulta.
Tengo un cuadro/tabla el cual debo Guardar/Imprimir en PDF con nombre tomado desde la misma hoja de excel (correlativo + fecha). Quisiera generar una macro que guarde esa impresión con el nombre que está en una celda. Gracias
|
|
sdgm
Colaborador Unido: 21/Abril/2005 Localización: Guatemala Estado: Sin conexión Puntos: 928 |
Opciones de entrada
Gracias(0)
|
Hola, Gladiador.
La grabadora de macros te puede dar las líneas que necesitas, pero tendrás que personalizar algunas cosas. Primero, suponiendo que en A1 tengas la fecha y en B1 el correlativo, tendrás que armar el nombre del archivo: Dim NombrePDF As String NombrePDF = Range("A1").Value & " - " & Range("B1").Value NombrePDF = Replace(Replace(NombrePDF, "/", "-"), ":", ",") & ".pdf" Observa que estoy reemplazando las diagonales y los dos puntos (que no pueden ser parte del nombre de un archivo) por guiones y comas. Cámbialos conforme te sea necesario. Segundo, estableces el área de impresión y ejecutas la exportación (recuerda que al exportar a pdf, lo que se enviará a éste último es lo que normalmente imprimirías de tu hoja): Sheets("Hoja1").PageSetup.PrintArea = "$A$2:$F$11" Sheets("Hoja1").ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:=ThisWorkbook.Path & "\Informe " & _ NombrePDF, _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=False Finalmente, incrementas el contador y restauras el área de impresión: Sheets("Hoja1").Range("B1").Value = Range("B1").Value + 1 Sheets("Hoja1").PageSetup.PrintArea = "" Pruébalo, y comentas. Saludos... |
|
Cordialmente, David
|
|
Gladiador
Asiduo Unido: 22/Junio/2006 Localización: Venezuela Estado: Sin conexión Puntos: 220 |
Opciones de entrada
Gracias(0)
|
Hola sdgm
Gracias por tu sugerencia, me funciona muy bien excepto que la ruta de guardado es un par de subcarpetas luego de la ruta del libro original. Es decir ThisWorkbook.Path & "\Reportes\2022\Sept " (*) Parecerá tonto, pero no he podido hacer que guarde en la carpeta correspondiente, solo guarda en la carpeta Reportes. Por muchas manera en que lo intenté, no pude saber que no estoy haciendo correctamente. Solo logré hacerlo, colocando la ruta y el nombre en la celda D1 "C:\Users\Carlos\Documents\Trabajo\Reportes\2022\Sept"&A1&"-"&B1 & ".pdf" Por lo tanto NombrePDF = Range("D1"). value y la línea quedó: Filename: = NombrePDF _ Si me pudieras aclarar donde está mi error en la instrucción (*) lo agradecería
|
|
sdgm
Colaborador Unido: 21/Abril/2005 Localización: Guatemala Estado: Sin conexión Puntos: 928 |
Opciones de entrada
Gracias(0)
|
Lo mejor sería ver lo que tu macro genera. Debe ser algún caracter no válido o equivocado en algún lado, o alguna notación propia de documentos en la nube (¿?).
Prueba mostrar el valor de NombrePDF en tu código original:
Range("Z1").value = NombrePDF y nos copias el resultado. |
|
Cordialmente, David
|
|
Gladiador
Asiduo Unido: 22/Junio/2006 Localización: Venezuela Estado: Sin conexión Puntos: 220 |
Opciones de entrada
Gracias(0)
|
Hola, gracias a todos por la colaboración.
Creo que se puede cerrar el hilo Gracias
|
|
Responder | |
Tweet
|
Ir al foro | Permisos de foro Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |