Macro para visualizar archivos especificos

Quisiera que me ayuden con una macro que abre la ventana de dialogo:

Sub SeleccionFichero()
On Error Resume Next
Archivo = Application.GetOpenFilename(Title:="Seleccione el excel de Compras", fileFilter:="Archivos Compras (*.xlsx),*.xlsx")
If RutaPLE = "Falso" Then
Exit Sub
End If
Hoja1.Range("A2").Value = Archivo
End Sub

Dentro de mi disco "D" existen varios archivos excel,, y tengo 12 archivos de compras,, lo que quisiera es que en el cuadro de dialogo solo me muestren esos 12 archivos de compras,, los archivos contienen la palabra Compras,, como haria para filtrar la visualizacion usando la palabra compras.

Muy agradecido por su ayuda.

1 Respuesta

Respuesta
1

H o l a:

Estuve revisando, y ni con GetOpenFilename ni con FileDialog(msoFileDialogFilePicker), se puede filtrar el nombre, solamente se puede filtrar por la extensión, es decir, no se puede poner algo como esto: "*compras*.xlsx"

Lo que se puede hace es diseñar un formulario para que te presente solamente los archivos que contengan la palabra "compras".

El formulario sería más o menos así:


Lo que contiene el formulario, es un botón para seleccionar la carpeta, un botón para abrir el archivo y un botón para salir.

Cuando abres el formulario, en automático te muestra los archivos de "*compras*" que están en esta ruta:

TextBox1 = "C:\trabajo\"

Cambia en la macro "C:\trabajo\", por la ruta inicial, puedes poner por ejemplo:

TextBox1 = "D:\"


Cuando cambias de carpeta, también en automático te muestra los archivos "*compras*".

Seleccionar un archivo de la lista y presiona el botón "Abrir" para poner el nombre en la hoja1, celda A2.


El código del formulario:

Private Sub CommandButton1_Click()
'Por.Dante Amor
    'Botón para seleccionar un archivo de excel
    If ListBox1.ListIndex = -1 Then Exit Sub
    Hoja1.Range("A2").Value = TextBox1 & ListBox1.List(ListBox1.ListIndex)
    Unload Me
End Sub
'
Private Sub CommandButton3_Click()
'Por.Dante Amor
    'Botón para cambiar de carpeta
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "Selecciona una carpeta"
        .AllowMultiSelect = False
        .InitialFileName = TextBox1
        If .Show <> -1 Then Exit Sub
        TextBox1 = .SelectedItems(1)
    End With
    Call ListarArchivos
End Sub
'
Sub ListarArchivos()
'Por.Dante Amor
    'rutina para mostrar los archivos en la lista
    ListBox1.Clear
    If Right(TextBox1, 1) <> "\" Then TextBox1 = TextBox1 & "\"
    archs = Dir(TextBox1 & "*compras*.xls*")
    Do While archs <> ""
        ListBox1.AddItem archs
        archs = Dir()
    Loop
End Sub
'
Private Sub UserForm_Activate()
'Por.Dante Amor
    'Ruta inicial donde están los archivos
    TextBox1 = "C:\trabajo\"
    Call ListarArchivos
End Sub
'
Private Sub CommandButton2_Click()
    'Botón para salir
    Unload Me
End Sub


':)
S a l u d o s . D a n t e A m o r
':) Si es lo que necesitas. Recuerda valorar la respuesta. G r a c i a s.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas