Como programo el abrir un documento cuyo nombre puede cambiar pero sus iniciales se mantienen.

Tengo un modulo en Visual Basic (Excel) y deseo saber como puedo abrir un documento con un nombre no especifico. Por ejemplo: Abrir un documento que inicie con las letras "ED" en una carpeta.

1 respuesta

Respuesta
2

H0la Byron:

¿Qué harás en caso de que dos documentos tengan las misma iniciales?

S@lu2

Hola, realmente cada día llega un archivo distinto, con las mismas iniciales pero diferente terminación.

El proceso puede ser automatizado pero necesito saber como poder programar al excel para que busque en una ruta epecifica el archivo que inicia con "ED"

H0la Byron:

Entiendo lo que comentas, pero no has respondido a mi pregunta.

Supongamos que en la misma carpeta tenemos ED00001. Xyz, ED00002. Xyz y ED00001. Abc, en tal caso ¿Cuál abres?

S@lu2

Esa situación seria muy extraña, ya que existe un archivo diario.

Pero para responder a tu pregunta, eliminaría uno de los 2 documentos antes para que la macro se ejecutara correctamente, o bien, los combinaría para abrir solamente uno de ellos.

Ya que es un asunto que no tratamos, asumiré que estamos hablando de un archivo de extensión .xls o .xlsm.

Este código es la adaptación de MACRO PARA LISTAR ARCHIVOS DE CARPETAS Y SUBCARPETAS

Function Mostrar_Archivos(ruta As String, ini As String) As String    
    'Sección 1: Declaración de variables y objetos
    Dim fs, carpeta, archivo, subcarpeta As Object
    Set fs = CreateObject("Scripting.FileSystemObject")
    'Sección 2: Ajustes necesarios a ruta
    If ruta = "" Then
        Exit Function
    ElseIf Right(ruta, 1) <> "" Then
        ruta = ruta & ""
    End If
    'Sección 3: Objeto Folder de la ruta indicada
    Set carpeta = fs.GetFolder(ruta)
    'Sección 4: Obtener archivos del objeto Folder
    For Each archivo In carpeta.Files
        If (Left(archivo.Name, Len(ini)) = ini) Then
            Mostrar_Archivos = archivo.Name
            Exit Function
        End If
    Next
End Function

Y acá tenemos el código para abrir el archivo

Sub subAbrir()
    Dim ruta As String, ini As String
    'Ruta a la carpeta donde se guarda el archivo'
    ruta = "C:\ruta_carpeta\"
    'Letras con que inicia el nombre del archivo buscado'
    ini = "ED"
    'Llamar a la función mostrar archivo que devuelve la ruta al archivo _
    abrirlo una vez que se tenga el resultado'
    Workbooks.Open Filename:=Mostrar_Archivos(ruta, ini)
End Sub

El código no tiene control de errores, por lo tanto, si no se encuentra el archivo, enviará un error.

S@lu2.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas