Notifications
Clear all

[Resolvido] Planilha de Pesquisa - Listar arquivos do Link


xandrinho
(@xandrinho)
Estimable Member Registered
Entrou: 7 anos atrás
Posts: 125
Topic starter  

Bom Dia!!!
Gostaria de pedir um auxilio aos mestres.
Elaborei uma planilha de pesquisa, mas não estou conseguindo evoluir na seguinte questão:
No formulário tem um textbox que tem um link de acesso de endereços arquivo anexados (.pdf .xls. doc. jpeg etc)
Gostaria que de acordo com o resultado da pesquisa, os arquivos fossem listados em outro textbox com a opção de abrir os arquivos ao “clicar”. No anexo, tem uma imagem explicativa....

Não sei se isso é possível, mas já vi tantas coisas legais aqui no fórum, e realmente o céu é o limite......
Poderiam, por favor, me ajudar?


ResponderCitar (Quote)
xandrinho
(@xandrinho)
Estimable Member Registered
Entrou: 7 anos atrás
Posts: 125
Topic starter  

Amigos, Bom Dia!!

Referente a dúvida em questão, encontrei na NET estes dois tópico, "acredito" que seria o pulo do gato para resolvermos....Os amigos consegue me ajudar adaptar o código?

https://www.tomasvasquez.com.br/blog/microsoft-office/excel-listar-arquivos-em-diretorio-num-listbox/

https://www.tomasvasquez.com.br/blog/microsoft-office/usando-a-funcao-shellexecute-no-vba/

 


ResponderCitar (Quote)
EdsonBR
(@edsonbr)
Prominent Member Moderator
Entrou: 5 anos atrás
Posts: 760
 

Bom dia, @xandrinho.

Faça um teste: no código de seu Userform, adicione:

Private Function MatrizNomeArquivos(caminho As String, Optional filtro As String = "")
  Dim NomeArq As String, NomeArqs() As String, i As Long
  caminho = caminho & "\"
  ChDrive caminho: ChDir caminho
  NomeArq = Dir(caminho & filtro)
  Do While NomeArq <> vbNullString
    i = i + 1
    ReDim Preserve NomeArqs(1 To i)
    NomeArqs(i) = NomeArq
    NomeArq = Dir
  Loop
  MatrizNomeArquivos = NomeArqs
End Function

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
  ThisWorkbook.FollowHyperlink TextBox7.Text & "\" & ListBox1.Value
End Sub

Altere o procedimento ProcuraPersonalizada, adicionando as seguintes linhas na posição indicada:

Private Sub ProcuraPersonalizada(ByVal TermoPesquisado As String)
...
...
...
        'Box com o conteudo encontrado
        TextBox1.Text = Plan1.Cells(MatrizResultados(0), 1).Value
        TextBox2.Text = Plan1.Cells(MatrizResultados(0), 2).Value
        TextBox3.Text = Plan1.Cells(MatrizResultados(0), 3).Value
        TextBox4.Text = Plan1.Cells(MatrizResultados(0), 4).Value
        TextBox5.Text = Plan1.Cells(MatrizResultados(0), 5).Value
        TextBox6.Text = Plan1.Cells(MatrizResultados(0), 6).Value
        TextBox7.Text = Plan1.Cells(MatrizResultados(0), 7).Value
        '******* INÍCIO *********
        If TextBox7.Text <> "" And Dir(TextBox7.Text, vbDirectory) <> "" Then
           ListBox1.List = MatrizNomeArquivos(TextBox7.Text)
        Else
           ListBox1.Clear
        End If
        '**** FIM ****************
    
    Else    'Caso nada tenha sido encontrado, exibe mensagem informativa
...
...  
...
End Sub

 


xandrinho curtiu
ResponderCitar (Quote)
xandrinho
(@xandrinho)
Estimable Member Registered
Entrou: 7 anos atrás
Posts: 125
Topic starter  

Bom Dia, Edson!!!

Primeiramente mto obrigado pela ajuda. Sem palavras pela auxilio. Adaptei o Código e “funcionou” perfeitamente. Apenas um único detalhe:

No ListBox, não é exibido os arquivos existentes no endereço do link (a informação vem em branco no listbox), no entanto, mesmo qdo eu clico no listbox (mesmo em branco) ele me abre o endereço do link para procura.....Existe a possibilidade de no listbox exibir o arquivos existente no endereço do link?...Consegue me auxiliar?

 


ResponderCitar (Quote)
EdsonBR
(@edsonbr)
Prominent Member Moderator
Entrou: 5 anos atrás
Posts: 760
 

Bom dia, @xandrinho!

Retire esse trecho de código da Sub ProcuraPersonalizada e passe ele para um novo evento Change da TextBox7:

Private Sub TextBox7_Change()
'        'Box com o conteudo encontrado
        If TextBox7.Text <> "" And Dir(TextBox7.Text, vbDirectory) <> "" Then
           ListBox1.List = MatrizNomeArquivos(TextBox7.Text)
        Else
           ListBox1.Clear
        End If
 End Sub

Obs.: para abrir o arquivo que está na ListBox use Duplo Click.


ResponderCitar (Quote)
xandrinho
(@xandrinho)
Estimable Member Registered
Entrou: 7 anos atrás
Posts: 125
Topic starter  

@edsonbr, Boa Tarde!!!

 

Certíssimo melhor impossível. Mto Obrigado pela ajuda e apoio.

 

Muito Agradecido.

 

Obrigado!!!


ResponderCitar (Quote)