Macro para abrir archivo .pdf alojado en carpeta externa aun que solo coincida parte del texto y como colocarle al final ".pdf"

Para: Dante Amor

Muy buenos días espero esté teniendo un excelente inicio de semana y año

Tengo una macro que contiene nombres de archivos .pdf me dice si el archivo de la celda seleccionada en la columna B existe en mi carpeta externa si lo encuentra pregunta si deseo abrirlo y si no manda mensaje de que no fue localizado

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Column <> 2 Then Exit Sub 'sólo se ejecutará en col B'

If Target.Row < 9 Then Exit Sub 'sólo se ejecuta a partir de la fila 9'

If Target.Value = " " Then Exit Sub
ChDir "C:\Users\cari\Documents\libros\"

nombre = Target.Value
Set fso = CreateObject("scripting.filesystemobject")
If fso.fileexists(CurDir() & "\" & nombre) Then
x = MsgBox("el archivo existe. Desea abrirlo??", vbYesNo, "ATENCION")
If x = vbNo Then Exit Sub

Shell "C:\Program Files (x86)\Adobe\Reader 9.0\Reader\AcroRd32.exe " & nombre
Else: y = MsgBox("no fue localizado")

End If

End Sub

Como podría hacerle para que me abra el archivo si solo coincide parte del texto ya que el registro en Excel se escribe completo el nombre del mismo, pero en el pdf solo se toma parte del nombre para guardarlo en la carpeta y a su vez como anexar al final del nombre guardado en columna B ".pdf" espero me pueda ayudar de antemano gracias

Aquí le anexo la imagen de como esta el nombre en el libro, como se encuentra en la carpeta donde se guardan y como necesito que se anexe la terminación ".pdf" en el texto de las celdas en columna B gracias

1 respuesta

Respuesta
1

H o l a:

Pero no me queda claro tu ejemplo, cuál es la celda que contiene "parte del texto", podrías escribir esa "parte del texto" y me explicas cuál es la relación entre la "parte del texto" y el nombre del archivo.

las celdas de la columna B en el libro contiene el nombre completo del archivo 

el nombre abreviado es  el que tienen los archivos .pdf almacenados en la carpeta externa. 

la macro que tengo solo me sirve si el nombre de alguna de las celdas en la columna B tenga la terminación (.pdf) y coincida exactamente con el nombre del archivo guardado en la carpeta externa. lo que necesito es que de ser posible lo abra aun que solo tenga parte del nombre los archivos guardados en la carpeta externa

los títulos de los documentos almacenados en la carpeta externa son parte de los títulos que están en la columna B del libro  

Puedes explicarme cómo determinar que de esto:

DGTRI-DP-JA-CPI-SG-SM-005-2015 BIS

Va a llegar a esto:

SG-SPRO-24-2015

Este es un ejemplo, pero sería más práctico entender si me explicas varios ejemplos de lo que pretendes.

buenos días

este dato DGTRI-DP-JA-CPI-SG-SM-005-2015 BIS  es el codigo de un documento que consta de siglas (DGTRI-DP-JA-CPI-SG-SM-)  para abreviar los nombres de las organizaciones de las dependencias a quien van dirigidos o de las cuales han llegado, el numero del documento que se a otorgado (005) y el año (2015) en este caso en especifico el (BIS) es un error no debería llevarlo ya que todos los documentos terminan con el numero de documento y el año. 

a su ves todos esos documentos físicos son escaneados y almacenados con formato .pdf  alojados en  carpetas del escritorio en la computadora  pero al escanearlos el nombre que se les asigna (escribe) a dicho documento solo es a partir de SG-SM-005-2015  

lo que pretendo o quiero saber si se puede es que si aunque en el libro de Excel el nombre este completo a la hora de buscar el archivo en la carpeta lo pueda encontrar a pesar de que no tenga el nombre completo tan solo con la coincidencia de los últimos datos o mostrar en una lista los que encuentre con algún tipo de coincidencia

ejemplos de como esta en el libro y como se encuentra en la carpeta el documento

nombre en el                                     nombre con el que se guarda en 

libro columna B                              carpeta de archivos almacenados 

PII-CPI-SG-SST-1-2015                                        SG-SST-1-2015

DGTRI-DP-JA-CP-SG-SPRO-001-2015                SG-SPRO-001-2015

PPQ-CPI-SG-SM-146-2015                                   SG-SM-146-2015

PII-CPI-SG-SST-1-2015                                         SG-SST-1-2015

H o l a:

Para entender bien, lo que pasa es que no me quedan claros tus ejemplos, en tu imagen pusiste esto:

EJEMPLO 1

En la celda                                                                En la carpeta

DGTRI-DP-JA-CPI-SG-SM-005-2015 BIS SG-SPRO-24-2015

Y ahora pones esto:

EJEMPLO 2

libro columna B                              carpeta de archivos almacenados 

PII-CPI-SG-SST-1-2015                                        SG-SST-1-2015

Entonces, ¿el EJEMPLO 1 nunca va a existir?

¿Me apego solamente al EJEMPLO 2?


Espero tus comentarios sobre el EJEMPLO 1

Sal u dos

si, el ejemplo 1 no existe seria del ejemplo 2 en adelante 

los demás archivos están con ese formato de siglas, numero de documento y año

gracias linda tarde

Te anexo la macro actualizada

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Act.Por.Dante Amor
    If Target.Column <> 2 Then Exit Sub 'sólo se ejecutará en col B'
    If Target.Row < 9 Then Exit Sub 'sólo se ejecuta a partir de la fila 9'
    If Target.Value = " " Or Target.Value = "" Then Exit Sub
    ChDir "C:\Users\cari\Documents\libros\"
    'ChDir ThisWorkbook.Path & "\"
    nombre = Target.Value
    If UCase(Right(nombre, 4)) = ".PDF" Then
        nuevo = Left(nombre, Len(nombre) - 4)
    Else
        nuevo = nombre
    End If
    arch = Dir(CurDir() & "\" & "*" & nuevo & "*.pdf")
    If arch <> "" Then
        If MsgBox("el archivo existe. Desea abrirlo??", vbYesNo, "ATENCION") = vbNo Then Exit Sub
        ActiveWorkbook.FollowHyperlink CurDir() & "\" & arch
    Else
        MsgBox "no fue localizado"
    End If
End Sub


‘
F E L I Z A Ñ O T E D E S E A D a n t e A m o r. Recuerda valorar la respuesta. G r a c i a s
:) 

muchas G R @ C I A S mis mejores D E S E O S para U S T E D y sus seres

Q U e R I D o S  que la S @ L u D    D i C h @ y  @ L e G r í @ se mantengan durante todo el AÑO :3

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas