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?
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/usando-a-funcao-shellexecute-no-vba/
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
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?
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.
@edsonbr, Boa Tarde!!!
Certíssimo melhor impossível. Mto Obrigado pela ajuda e apoio.
Muito Agradecido.
Obrigado!!!