macro crea archivo pdf

12/05/2009 - 21:14 por strummer | Informe spam
Hola amigos,
Quiero convertir una hoja de excel en PDF (en una direccion mia, con
nombre mio) pero tengo un problema al usar el sgte codigo que encontre
en internet (ver abajo).
O sea, la macro llama al PDF pero al momento de elegir la direccion y
el nombre del archivo NO lo hace y no se a que se deba. Lo hice en
otra maquina y salio OK. En la que estoy probando no es Windows Vista,
o 2007. Es Windows 2003 o antes.

Saludos y muchas gracias



Sub CreaPDF()
Application.ScreenUpdating = False

Filename = "C:\" & “PRUEBA_REC_PDF” & ".pdf"
SendKeys Filename & "{ENTER}", False
'--
ActiveWindow.SelectedSheets.PrintOut Copies:=1,
ActivePrinter:="PDFCreator en Ne01:", Collate:=True
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 2
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime
'-
Filename = "C:\" & “PRUEBA_REC_PDF” & ".pdf"
SendKeys Filename & "{ENTER}", False
End Sub
 

Leer las respuestas

#1 strummer
15/05/2009 - 23:28 | Informe spam
On 12 mayo, 23:43, "Héctor Miguel"
wrote:
hola (...), ?????

> Quiero convertir una hoja de excel en PDF (en una direccion mia, con nombre mio)
> pero tengo un problema al usar el sgte codigo que encontre en internet (ver abajo).
> O sea, la macro llama al PDF pero al momento de elegir la direccion y el nombre del archivo
> NO lo hace y no se a que se deba. Lo hice en otra maquina y salio OK.
> En la que estoy probando no es Windows Vista, o 2007. Es Windows 2003 o antes.

1) una instruccion "SendKeys" para guardar un *.PDF (hasta donde se) solo es necesaria para excel 97
    en versiones posteriores puedes establecer el nombre del *.PDF en el mismo metodo .PrintOut

2) no se por que consideras necesario el uso del "Application.Wait"    (???)

3) tampoco creo apropiado "repetir" la instruccion "SendKeys" justo despues del "Wait"    (???)
    (segura o probablemente, solo esta quedando "depositado" el nombre del archivo en la celda activa)    (???)

4) una (probable) causa es que al cambiar de equipo la impresora NO coincida con en el puerto "Ne00:"    (???)

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ el codigo expuesto __
Sub CreaPDF()
Application.ScreenUpdating = False
Filename = "C:\" & “PRUEBA_REC_PDF” & ".pdf"
SendKeys Filename & "{ENTER}", False
'--
ActiveWindow.SelectedSheets.PrintOut Copies:=1,
ActivePrinter:="PDFCreator en Ne01:", Collate:=True
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 2
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime
'-
Filename = "C:\" & “PRUEBA_REC_PDF” & ".pdf"
SendKeys Filename & "{ENTER}", False
End Sub



La parte de programacion no la se. Yo copi este codigo de internet
(preguntas 1,2, 3)
Respecto a la 4), si chequee la impresora y esa esta bien en el codigo
de la macro

Preguntas similares