macro inprimir pdf

13 envíos / 0 nuevos
Último envío
tetorin
Imagen de tetorin
Offline
última acción: Hace 7 meses 1 semana
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntos
alta: 26/05/2011 - 02:57
Puntos: 3262
macro inprimir pdf

bun dia

 tengo un archivo de excel con varias pestañas y un archivo pdf con varias hosjas identificadas con numeros ,pero cada pestaña de excel y cada hoja de pdf estan relacionadas  y quisiera saber como puedo hacer una macro  para inprimirlas una hoja de pdf y una pestaña de excel alavez segun su relacion..

ya que cada mes inprimo asi mas de 800hojas de pdf con su relacion de excel pero tengo que hacer el proceso de relacionarlas manualmente

 

Saludos.............

Etiquetas: 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 57 mins 16 segs
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: macro inprimir pdf

por un lado necesitas una macro que recorra todas las pestañas

 

sería un bucle similar a este:

 

Dim hoja As Worksheet

For Each hoja In ActiveWorkbook.Worksheets

    'aquí lo que quieras hacer con la hoja, por ejemplo imprimirla

    hoja.PrintOut

Next

 
Para imprimir un archivo externo, tu macro debe comunicarse con Windows, que es quien puede abrir el archivo e imprimirlo.
(como si eligieses el archivo y en el menú contextual seleccionaras la opción Imprimir)
 
Desde tu macro tendrás que añadir una referencia a ShellExecute, que está en shell32.dll de windows
(la referencia de shell execute puedes consultarla aquí: http://msdn.microsoft.com/en-us/library/windows/desktop/bb762153(v=vs.85).aspx)
 
'esto tiene que ir al principio del módulo
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
  (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
  ByVal lpParameters As String, ByVal lpDirectory As String, _
  ByVal nShowCmd As Long) As Long
  
Sub ImprimeArchivoExterno(RutaAlArchivo As String)
    Const SW_SHOWNORMAL As Long = 1
    ShellExecute 0, "print", RutaAlArchivo, vbNullString, "", SW_SHOWNORMAL
End Sub
 
Simplemente se trataría de ir llamando a este procedimiento con el nombre del archivo pdf que necesitas, y esto lo puedes colocar dentro del primer bucle que recorría todas las hojas del libro.
Pruébalo y cuéntanos si funcionó.
 
 
 

 

------
Ya sé Excel, pero necesito más.

tetorin
Imagen de tetorin
Offline
última acción: Hace 7 meses 1 semana
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntos
alta: 26/05/2011 - 02:57
Puntos: 3262
Re: macro inprimir pdf

hola, no he podido hacer ue funcione mi macro ufff  ,perdonen mi ignorancia si me pudieran dar mas ejemplos se los agredeceria

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 57 mins 16 segs
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: macro inprimir pdf

¿cómo no funciona?

¿da algún error?¿se interrumpe la ejecución en alguna línea?...

¿puedes adjuntar un archivo con el ejemplo de lo que no funciona?

 

------
Ya sé Excel, pero necesito más.

visitante (no verificado)
Imagen de visitante
Re: macro inprimir pdf
pacomegia. Me a servido mucha tu información. Tengo un problema al imprimir el PDF no me esta saliendo la primera hoja del PDF que es lo que necesito como lo podría hacer esto con el shellexecute.
pacomegia
Imagen de pacomegia
Offline
última acción: Hace 57 mins 16 segs
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: macro inprimir pdf

¿ocurre con cualquier pdf o sólo con algunos?

¿puedes adjuntar un pdf de ejemplo?

 

------
Ya sé Excel, pero necesito más.

Sertx (no verificado)
Imagen de visitante
Macro imprimir pdf

Hola Pacomegia, 

 

He utilizado tu macro (que te copio al final del post) para poder imprimir un archivo externo pdf desde una macro de excel. Y funciona de lujo, pero querría añadirle una orden.

Se puede hacer que la macro haga tantas copias del documento pdf como valor tenga una celda de excel? es decir, si en la celda A1=4 que la macro imprima 4 copias del documento pdf?

Muchas gracias

Sertx

 

 

 

MACRO UTILIZADA

'esto tiene que ir al principio del módulo
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
  (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
  ByVal lpParameters As String, ByVal lpDirectory As String, _
  ByVal nShowCmd As Long) As Long
  
Sub ImprimeArchivoExterno(RutaAlArchivo As String)
    Const SW_SHOWNORMAL As Long = 1
    ShellExecute 0, "print", RutaAlArchivo, vbNullString, "", SW_SHOWNORMAL
End Sub
pacomegia
Imagen de pacomegia
Offline
última acción: Hace 57 mins 16 segs
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Hasta donde yo sé, esta

Hasta donde yo sé, esta llamada mediante shellExecute imprime de uno en uno, (es el equivalente a la opción Imprimir que aparece en el menú contextual del explorador de archivos, esto es, imprime una copia por la impresora por defecto).

Así que para imprimir n copias, tendrás que hacer un bucle y llamar a la función varias veces,
por ejemplo:

Dim i

For i=1 To Activecell.Range("a1").value

   imprimearchivoexterno turutaalarchivo

Next

 

 

------
Ya sé Excel, pero necesito más.

alfonso (no verificado)
Imagen de visitante
imprimir varios archivos(pdf)

comos seria la elaboracion de una macro en excel, para impimir todos los archivos pdf de una carpeta

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 57 mins 16 segs
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
para recorrer los archivos de

para recorrer los archivos de una carpeta, tal vez lo más sencillo sea utilizar  DIR

La primera vez que lo utilices, debes facilitarle como argumento la ruta a la carpeta

Las siguientes veces no utilices ningún argumento, esto te va dando los nombres de todos los archivos unos por uno.

podría ser algo así:

Sub RecorreArchivosEnCarpeta(tucarpeta As String)

    Dim miarchivo As String

    miarchivo = Dir(tucarpeta)

    Do Until miarchivo = ""

        'haces lo que quieras con el archivo

       '....

        miarchivo = Dir      ' para pasar al siguiente archivo

    Loop   

End Sub

 

 

------
Ya sé Excel, pero necesito más.

oscar (no verificado)
Imagen de visitante
Al utilizar la  macro para

Al utilizar la  macro para imprimir PDF externos, no los imprime en el orden en que están relacionados en excel

oscar (no verificado)
Imagen de visitante
imprimir en orden

Al utilizar la  macro para imprimir PDF externos, no los imprime en el orden en que están relacionados en excel

Oscar CC (no verificado)
Imagen de visitante
No imprimi en orden

Buena la macro, pero al utilizarla para unlistado de archivos relacionados en excel, no imprime en orden. Gracias