Saltar al contenido

Abrir e imprimir archivos PDF desde Excel


Recommended Posts

publicado

Cordial saludo,

quisiera saber si es posible crear una macro en Excel que abra varios archivos PDF de una carpeta, los imprima y luego los cierre; los nombres de los archivos se encuentran en una hoja de Excel.

agradezco toda la ayuda posible.

Saludos, PedroCS

Invitado sacfa
publicado

Prueba esto y comenta si te funciona:

Sub Imprimir_Archivo_PDF()

Dim Reader As String, Archivo_PDF As String

Rem Ruta donde esta instalado el acrobat reader

Reader = "C:\Program Files\Adobe\Reader 10.0\Reader\AcroRd32.exe"

Rem Ruta donde estan ubicado todos los archivos

Archivo_PDF = "C:\Libros Contables\*.pdf"

Shell Reader & " /p /h /s /o " & Archivo_PDF

Application.SendKeys "%{f4}", False

End Sub

  • 9 months later...
publicado

Lo ejecute y no hace nada, a lo mas, cierra exel.

Saque el codigo "Application.SendKeys "%{f4}", False" y al ejecutar la macrol, queda todo igual, no se ve que haga nada.

Yo tengo excel 2010, y pensar que en excel 2003 era tan facil asignar a un boton (que se ubicaba en la barra de herramientas de acceso rapido) una URL para abrir un archivo excel

saludos

Wfredo

publicado

Buenas veamos utiliza

#If Win64 Then
    Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( ByVal hwnd As LongPtr, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPtr
#Else
    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
#End If
Sub ImprimiPDF()
    Dim archivo     As Variant
    Dim archivos    As Variant
    Dim i           As Long
    Dim j           As Long
    With Application.FileDialog(3)
        .AllowMultiSelect = True
        .Title = "SELECCIONA ARCHIVO PARA IMPRIMIR"
        .Filters.Clear
        .Filters.Add "All files", "*.pdf"
        .Show
        j = .SelectedItems.Count
        If j = 0 Then
            MsgBox "Sin selección de archivo" & vbNewLine & vbNewLine & "Proceso abortado", vbCritical, "ERROR"
            Exit Sub
        Else
            For i = 1 To j
                archivo = .SelectedItems(i)
                ShellExecute Application.hwnd, "print", archivo, vbNullString, vbNullString, 2
            Next
        End If
    End With
End Sub

Un saludo

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.