Saltar al contenido

Abrir pdf al seleccionar celda o rango de celdas


Recommended Posts

publicado

Hola a Todos

Espero estén muy bien, acudo a uds por lo siguiente:

En un archivo hago un listado de archivos que están contenido en una carpeta (siempre la misma), necesito que al seleccionar una o varias (hasta 5 celdas), abrir los pdf's de acuerdo al nombre contenido en la o las celdas seleccionadas.

Una vez abierto el archivo,  pintar la o las celdas seleccionadas, para saber cuales fueron abiertas.

Buscando en el foro, encotré una solución, pero solo funciona para una celda.

Solución que encontré en el foro, por @Haplox

Adjunto la opción que estoy manejando yo, que es un código que lo activo mediante un boton.

 

Saludos Cordiales

Pedro

  

 

 

ABRIR PDF.xlsm

publicado

Hola

Solo le metes un bucle y es suficiente

Sub pdfopen()
    Dim Celda As Range
    For Each Celda In Selection
        archipdf = ActiveWorkbook.Path & "\Bitácora Envíos\" & Celda.Value
        ActiveWorkbook.FollowHyperlink archipdf, , True
        Celda.Interior.Color = RGB(200, 100, 50)
    Next
End Sub

 

  • 1 month later...
publicado

Hola

Espero todos estén muy bien, yo aqui aun enredado con la opción de abrir un pdf.

Declare PtrSafe 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 pdfopen()
    Dim RangoSeleccionado As Range
    Dim celda As Range
    Dim nombreArchivo As String
    Dim rutaArchivo As String
    Dim rutaCompleta As String
    Dim rutaLocal As String
    
    Set RangoSeleccionado = Selection
    
    rutaCompleta = ThisWorkbook.Path & "/Bitacora/"
    rutaLocal = Replace(rutaCompleta, Environ("OneDriveCommercial"), Environ("OneDriveConsumer"))
    
    On Error GoTo ManejarError
    
    For Each celda In RangoSeleccionado
        nombreArchivo = celda.value
        
        If nombreArchivo <> "" Then
            archipdf = rutaLocal & nombreArchivo & ".pdf"
            ShellExecute 0, "Open", archipdf, vbNullString, vbNullString, vbNormalFocus
            celda.Interior.Color = RGB(73, 180, 216)
        End If
    Next celda
    
    Exit Sub
    
ManejarError:
    MsgBox "Error: Seleccionar una celda dentro de la columna B", vbCritical, "Error"
    'Err.Description
    Application.DisplayAlerts = False
End Sub

EL codigo es para abrir pdf en una ubicacion en carpeta one drive, pero no logra hacer que abra el archivo con el programa establido para ver pdf, lo abre directamente en el navegador.

Habra forma de forzar que al abrir el archivo lo haga en el programa establecido en el pc para ver pdf?

Saludos Cordiales

Pedro Venegas

 

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.