Imprimir y nombrar pdf desde excel y guardar en escritorio

Estoy tratando de hacer una macro que debe ser sencilla pero no doy con ella.

Quiero imprimir la hoja activa como pdf, nombrarla según el valor de una celda ("b32") determinada, y guardarla en el escritorio.

El objetivo que me lo guarde en el escritorio es para poder utilizar el excel desde distintos ordenadores.

1 respuesta

Respuesta
1

Espero te encuentres bien.

Te propongo el siguiente código a ver como funciona.

Sub Macro1()
ChDir "C:\Nueva carpeta"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Nueva carpeta\" & Range("B32") & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End Sub

Si bien vos indicaste que te gustaría guardarlo en escritorio, te propongo hacerlo en el Disco C en una Nueva Carpeta (La tenes que crear con ese nombre) ya que la dirección para llegar a un escritorio de cualquier PC varia.

Atentamente.

Lucas.

<div id="wrc-float-icon" style="z-index: 2147483646; left: 15px; top: 15px; width: 42px; height: 42px; background-image: url('safari-extension://com.avast.wrc-6H4HRTU5E3/9776891f/images/float/green-1.png'); position: fixed; display: none;"> </div>

Gracias por tu rapidez.

Ya estaba suponiendo que guardarlo en el escritorio es difícil porque no encontraba ejemplos por internet. Pero, antes de seguir, ¿podría guardarla en mis documentos?

En caso de que no sea, ¿es posible que en la macro se cree automáticamente el directorio, en caso que no existiera?

Además tengo otras dudas.

Me gustaría que los archivos pdf quedaran nombrados como: "aaaammdd informe granja", siendo aaaa los 4 dígitos del año, mm, los dos del mes, y dd los dos del día (de esta forma los pdf quedarían ordenados cronológicamente según su nombre.

La celda "b32" es la fecha actual. Por tanto, debería buscar la forma de ponerlo como expliqué antes, y concatenarlo con "informe granja".

Espero tu respuesta.

Para guardar en Mis documentos tenes el mismo drama que el escritorio. Mira como seria la grabación que hace VB: ChDir "C:\Documents and Settings\Lucas.ADMINISTRACIÓN\Mis documentos" Si estas en es otra PC se va a modificar la ruta y va a dejar de funcionar la macro.

En cuanto al nombre te propongo lo siguiente. Generemos el nombre que tu deseas en la celda B999 y guardemos el archivo con el valor de esa celda..

Te paso la macro actualizada.

Sub Macro2()
Range("B999").Select
ActiveCell.FormulaR1C1 = _
"=TEXT(R[-967]C,""dd"")&TEXT(R[-967]C,""mm"")&TEXT(R[-967]C,""yy"")&"" Informe Granja"""
ChDir "C:\Nueva carpeta"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Nueva carpeta\" & Range("B999") & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End Sub

Si tu quieres puede poner el valor en otro lado que no sea B999 y ademas también podrías borrar ese valor cuando terminas la macro.

Atentamente.

Lucas.

<div id="wrc-float-icon" style="z-index: 2147483646; left: 15px; top: 15px; width: 42px; height: 42px; background-image: url('safari-extension://com.avast.wrc-6H4HRTU5E3/9776891f/images/float/green-1.png'); position: fixed; display: none;"> </div>

Perdona, pero no entiendo qué es esto:

"=TEXT(R[-967]C,""dd"")&TEXT(R[-967]C,""mm"")&TEXT(R[-967]C,""yy"")&"" Informe Granja"""

¿Eso transforma la fecha al revés?

Un saludo.

Si mil disculpas no había leído ese detalle por favor pone el código asi y pruébalo a ver que pasa.

Sub Macro2()
Range("B999").Select
ActiveCell.FormulaR1C1 = _
"=TEXT(R[-967]C,""yy"")&TEXT(R[-967]C,""mm"")&TEXT(R[-967]C,""dd"")&"" Informe Granja"""
ChDir "C:\Nueva carpeta"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Nueva carpeta\" & Range("B999") & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End Sub

Atentamente.

Lucas.

<div id="wrc-float-icon" style="z-index: 2147483646; left: 15px; top: 15px; width: 42px; height: 42px; background-image: url('safari-extension://com.avast.wrc-6H4HRTU5E3/80238cc7/images/float/green-1.png'); position: fixed; display: none;"> </div>

Lucas,

Gracias de nuevo, y perdón por el lío, pero me surgen 2 cosas:

-el nombre del fichero que me sale es:

yy0100 Informe Granja

-la impresora pdf debería ser CUTE-PDF WRITER

Espero tu respuesta.

Sale con ese formato porque evidentemente tenemos version diferete de Office.

Por favor cheque en tu vesion como deberíamos poner el año el mes y el dia. Eso lo puedes averiguar en el formato de una celda, personalizar, y buscas como muestra la fecha. Luego reemplazas la yy por AA (Tal vez) o el mm por MM.

¿Para qué necesitas que la impresora sea CUTE-PDF WRITER?

Atentamente.

Lucas.

<div id="wrc-float-icon" style="z-index: 2147483646; left: 15px; top: 15px; width: 42px; height: 42px; background-image: url('safari-extension://com.avast.wrc-6H4HRTU5E3/a4552d45/images/float/green-1.png'); position: fixed; display: none;"> </div>

Muchísimas gracias.

No entendía el código.

El "yy" era "aa".

Ahora bien, necesito que se programa para la aplicación cute pdf porque sino me aparece un cuadro de diálogo en el que tengo que decir si quiero comprar "NITRO PDF" o utilizarlo en modo DEMO.

¿Sabes cómo puedo hacerlo?

Okey me alegro que hayamos solucionado lo primero.

En cuanto a lo segundo no lo logro comprender. Tendríamos que preguntarle a Luis o Elsa, ellos seguro lo sacan. Yo tendría que investigarlo y no se cuanto tiempo nos lleve.

Espero haber sido útil.

Atentamente.

Lucas.

<div id="wrc-float-icon" style="z-index: 2147483646; left: 15px; top: 15px; width: 42px; height: 42px; background-image: url('safari-extension://com.avast.wrc-6H4HRTU5E3/d5206de7/images/float/green-1.png'); position: fixed; display: none;"> </div>

Ok.

Has sido muy útil.

Cierro la consulta pues, o espero por si alguien contesta?

Saludos.

Cerrala y volvé a abrir una nueva en el tablón con lo de Cute PDF.

Atentamente.

Lucas.

<div id="wrc-float-icon" style="z-index: 2147483646; left: 15px; top: 15px; width: 42px; height: 42px; background-image: url('safari-extension://com.avast.wrc-6H4HRTU5E3/79e65e44/images/float/green-1.png'); position: fixed; display: none;"> </div>

Ok, muchas gracias por tu ayuda.

Era lo que necesitaba.

Respecto a lo de la aplicación pdf, es como si estuviera predeterminada la aplicación NITRO, y por eso me salta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas