Agradezco cualquier ayuda pues es muy importante para mi.
Saludos,
Cosimo
Sub Seleccionar_Impresora_E_Imprimir()
Dim strImpresoraAnterior As String
With Application
strImpresoraAnterior = .ActivePrinter 'Almacenar la impresora activa
.ActivePrinter = "HP LaserJet 4100 PCL 6 en Ne02:"
Worksheets("Hoja1").PrintOut
If .ActivePrinter <> strImpresoraAnterior Then .ActivePrinter = strImpresoraAnterior
End With
End Sub
Para adaptar el código a tus necesidades tendrás que averiguar el nombre exacto de la impresora PDF WRITER. Puedes lograrlo seleccionándola (en el cuadro de diálogo de impresión), y ejecutando el siguiente código:
Sub MostrarNombreImpresoraActiva()
MsgBox Application.ActivePrinter
End Sub
Un saludo.
Fernando Arroyo
MS MVP - Excel
"Cosimo" <anon...@discussions.microsoft.com> escribió en el mensaje news:10aa501c4129c$a7225620$a601...@phx.gbl...
Creo que no has entendido la pregunta, yo tengo el mismo problema y no
tengo solución, se trata de conseguir dar el nombre y la ubicación que
debe de tener un fichero que lo genera una impresora que impreme en el
puerto FILE: (lo mismo que hace el PDF WRITER), yo he pensado en utilizar
la instrucción "SendKeys" pero no termino de ver como hacerlo.
Saludos.
Gracias por tu respuesta.
Creo que el problema es como dice Peponcio.
Tengo un código que hace varias tareas y en una parte
selecciona una e imprime cierto rango de celdas.
Luego seleciona otra, que en realidad no es una impresora
sino un complento de Adobe que se instala como si fuera
otra impresora pero al momento de imprimir se abre un
cuadro del tipo save as y al´lí se coloca el destino y el
nombre del archivo y el documento se guarda como .PDF.
El tema es que no sé como determinar ese destino y nombre
del archivo.
Aquí te copio parte del código donde se indica que imprima
en esa impresora. Está hecho con la grabadora de macros y
como verás no aparece nada que indique el destino.
Application.ActivePrinter = "Acrobat PDFWriter en
LPT1:"
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=2,
Copies:=1, Preview:=False, _
ActivePrinter:="Acrobat PDFWriter en LPT1:"
Lo que pasa luego de esto es que se abre ese cuadro del
que te hablé y al colocar los datos se guarda la hoja.
Tal vez no haya forma de solucionar el problema, pero me
gustaría conocer tu opinión.
Gracias nuevamente.
Saludos,
Cosimo
>-----Mensaje original-----
>.
>
Fernando Arroyo
MS MVP - Excel
"Cosimo" <anon...@discussions.microsoft.com> escribió en el mensaje news:f6aa01c41346$09336c60$a001...@phx.gbl...
¿Podrías darme algún ejemplo del comando SendKeys?
Digamos para una situación de Save as.
Imaginemos que se abre el cuadro de díalogo save as.
¿Cuál sería el código (SendKeys) a crear para que guarde
el documento en C: y con el nombre prueba?
Si me puedes ayudar con esto yo podría probar y luego
informar si funciona o los errores que dá para poder
solucionarlo.
Gracias nuevamente.
Saludos,
Cosimo
>-----Mensaje original-----
>.
>
SendKeys "%auC:\prueba.xls%g"
Un saludo.
Fernando Arroyo
MS MVP - Excel
"Cosimo" <anon...@discussions.microsoft.com> escribió en el mensaje news:13f1901c4134c$22c75eb0$a501...@phx.gbl...
He hecho la prueba pero las teclas no se envían.
Este es un código que hice de prueba para que lo veas y me
indiques dónde tendría que escribir lo que me indicaste
(SendKeys "%auC:\prueba.xls%g") pues yo lo coloco antes de
la última linea pero no pasa nada.
Te comento que si ejecuto solo SendKeys "%auC:\prueba.xls%
g", lo que hace es copiar en la celda activa :\prueba.xls,
pero no coloca la C.
De todos modos cuando se abre la ventana de guardar como,
el comando no parece hacer nada.
Sheets("DOCUMENTOS").Select
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle =
xlNone
Application.ActivePrinter = "Acrobat PDFWriter en
LPT1:"
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=2,
Copies:=1, Preview:=False, _
ActivePrinter:="Acrobat PDFWriter en LPT1:"
Range("AX30").Select
Agradezco Cualquier Ayuda
Saludos,
Cosimo
>-----Mensaje original-----
>.
>
%a -> Alt+a
u-> Guardar como
C:\prueba.xls -> nombre con que se guardará el libro
%g -> Guardar
He pensado que hay un parámetro del método PrintOut que quizás te sirva: PrToFileName
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=2, Copies:=1, Preview:=False, ActivePrinter:="Acrobat PDFWriter en LPT1:", PrToFileName:="C:\ruta\NombreFichero.pdf"
aunque no puedo asegurar que funcione puesto que, repito, jamás he usado el Adobe. Respecto a la instrucción
Application.ActivePrinter = "Acrobat PDFWriter en LPT1:"
pienso que no te hace falta puesto que en el método PrintOut ya estás especificando
Un saludo.
Fernando Arroyo
MS MVP - Excel
"Cosimo" <anon...@discussions.microsoft.com> escribió en el mensaje news:1411301c41368$03091570$a501...@phx.gbl...
Me temo que no es válido ningún método de los dos:
1.- PrToFileName: --> Se genera un fichero con el nombre indicado pero
con 0 bytes y después sigue pidiendo el nombre para el fichero (no
utiliza la informacion entregada).
2.- SendKeys --> En el momento de ejecutar la instruccion .PrintOut la
macro se paraliza hasta terminar de imprimir y en el caso de la impresión
PDF, espera a que se le de el nombre del fichero PDF, y una vez terminado
es cuando sigue con la siguiente instrucción, necesitaríamos mandar la
instrucción .PrintOut de manera asincrona, cosa que creo que no se debe
de poder realizar.
.
.
.
.
"Fernando Arroyo" <ferarr...@ESTOwanadoo.es> dijo
news:ODzp4w#EEHA...@TK2MSFTNGP12.phx.gbl: