Notifications
Clear all

Visualizar arquivos PDF [em pasta C:] pelo ListBox

9 Posts
3 Usuários
0 Reactions
1,947 Visualizações
leandroxtr
(@leandroxtr)
Posts: 447
Reputable Member
Topic starter
 

Bom dia, pessoal!

Estou com um desafio interessante aqui no serviço.

Nem sei se é possível fazer, mas estou postando aqui para ver se conseguem me ajudar.

Pois bem, tenho uma pasta trabalho(pasta no [c:] ) que dentro dela possui inúmeros arquivos em PDF para serem impressos em algum momento específico.
Gostaria de saber se é possível criar uma caixa de listagem (ListBox) dentro de um formulário (UserForm), onde aparecerão todos os item (em PDF) existentes dentro de uma pasta de trabalho no [c:].

A intenção de visualizar os arquivos no listbox, é para facilitar o manuseio. (Imprimir, Excluir, Renomear, mover, etc.).

Obrigado!

Se te ajudou, não se esqueça de dar um like na resposta e marcar o tópico como finalizado.

Abraços!
Leandro Cordeiro

 
Postado : 25/09/2017 7:49 am
gfranco
(@wzxnet7)
Posts: 653
Honorable Member
 

Bom dia Leandro.
Com relação a impressão de múltiplos arquivos, creio que o seguinte pode lhe ajudar:
https://www.baboo.com.br/tutorial/tutorial-software/imprimir-mais-de-um-arquivo-por-vez-com-print-conductor/

Resposta útil? Clique na mãozinha ao lado do botão Citar.

 
Postado : 25/09/2017 8:05 am
leandroxtr
(@leandroxtr)
Posts: 447
Reputable Member
Topic starter
 

É um bom programinha, mas queria ver a possibilidade de fazer isso no excel-vba

Se te ajudou, não se esqueça de dar um like na resposta e marcar o tópico como finalizado.

Abraços!
Leandro Cordeiro

 
Postado : 25/09/2017 8:52 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Aqui tem um modelo em ListBox, veja se consegue ajustar.

EXCEL – LISTAR ARQUIVOS EM DIRETÓRIO NUM LISTBOX
https://www.tomasvasquez.com.br/blog/mi ... um-listbox

É só trocar a Function pela a abaixo, onde filtramos somente pelos arquivos PDF:

Public Function ListaArquivos(ByVal Caminho As String) As String()

'Atenção: Faça referência à biblioteca Micrsoft Scripting Runtime
Dim FSO As New FileSystemObject
Dim result() As String
Dim Pasta As Folder
Dim Arquivo As File
Dim Indice As Long


ReDim result(0) As String
If FSO.FolderExists(Caminho) Then
    Set Pasta = FSO.GetFolder(Caminho)
 
    For Each Arquivo In Pasta.Files
        
        'Filtramos somente pelos arquivos PDF
        If Arquivo.Type = "PDF Document" Then
      
            Indice = IIf(result(0) = "", 0, Indice + 1)
      
            ReDim Preserve result(Indice) As String
            result(Indice) = Arquivo.Name
            
        End If
        
    Next
    
End If

ListaArquivos = result
ErrHandler:
    Set FSO = Nothing
    Set Pasta = Nothing
    Set Arquivo = Nothing
    
End Function

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 25/09/2017 12:41 pm
leandroxtr
(@leandroxtr)
Posts: 447
Reputable Member
Topic starter
 

Boooa Mauro!

é exatamente isso que estava pensando.
O código da planilha original está funcionando perfeitamente, mas como sabe, está puxando não somente arquivos pdf.
Quando coloquei o seu código no lugar, acabou que não está puxando nada. O pior é que não consegui identificar o erro, pois não tenho conhecimento deste tipo de rotina.

Obrigado!

Se te ajudou, não se esqueça de dar um like na resposta e marcar o tópico como finalizado.

Abraços!
Leandro Cordeiro

 
Postado : 25/09/2017 1:23 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

No teste que fiz com a alteração para listar somente os PDF funcionou normalmente.
Verifique se na pasta que está pesquisando contem arquivos "PDF".

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 25/09/2017 1:36 pm
leandroxtr
(@leandroxtr)
Posts: 447
Reputable Member
Topic starter
 

ÉE...Realmente não deu certo aqui!
Não sei porque.

Sem adaptar o código, puxa todo e qualquer arquivo, inclusive os pdf's. Quando faço a adaptação, não puxa nenhum!

Poderia postar a planilha editada pra eu ver se o problema resolve?

Se te ajudou, não se esqueça de dar um like na resposta e marcar o tópico como finalizado.

Abraços!
Leandro Cordeiro

 
Postado : 26/09/2017 11:47 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

O arquivo é o mesmo que está no link, só alterei a condição de tipo e ajustei o caminho digitado.
Troque por esta e veja se da certo:

Public Function ListaArquivos(ByVal Caminho As String) As String()

'Atenção: Faça referência à biblioteca Micrsoft Scripting Runtime
Dim FSO As New FileSystemObject
Dim result() As String
Dim Pasta As Folder
Dim Arquivo As File
Dim Indice As Long
Dim RecebeExtensao

ReDim result(0) As String
If FSO.FolderExists(Caminho) Then
    Set Pasta = FSO.GetFolder(Caminho)
 
    For Each Arquivo In Pasta.Files
        'Extrai a extensão do arquivo
        RecebeExtensao = Right(Arquivo, 3)
  
        'Verifica se é PDF
        If RecebeExtensao = "pdf" Then
          
          Indice = IIf(result(0) = "", 0, Indice + 1)
          
          ReDim Preserve result(Indice) As String
          result(Indice) = Arquivo.Name
        End If
        
    Next
    
End If

ListaArquivos = result
ErrHandler:

    Set FSO = Nothing
    Set Pasta = Nothing
    Set Arquivo = Nothing
    
End Function

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 27/09/2017 11:45 am
leandroxtr
(@leandroxtr)
Posts: 447
Reputable Member
Topic starter
 

Bom dia, Mauro,
Deu certo, muito obrigado!

Abraços!

Se te ajudou, não se esqueça de dar um like na resposta e marcar o tópico como finalizado.

Abraços!
Leandro Cordeiro

 
Postado : 28/09/2017 5:19 am