Notifications
Clear all

visualizador Imagens FSO Recursiva

77 Posts
4 Usuários
0 Reactions
10.7 K Visualizações
(@xman2000)
Posts: 178
Estimable Member
Topic starter
 

Olá colegas!
bom domingo!

deejo fazer um visualizador de Imagens Excel usando FSO (FileSystemObject)
recursiva em todos os codigos.
o primeiro desafio é listar os arquivos ou pastas com subpastas no Listbox.
lembrando sempre usar FSO recursiva.

eu consegu listar a primeira subpasta, mas nao tá puxando as outras.
meu prolema é listar todas as subpastas e os arquivos delas paradamente em um listbox pra cada.
eu configurei pra buscar e (c:teste) e incluí no arquivo de exemplo.
incluí no arquivo excel a tela de como deve ficar no final o visualizador de imagens.
eu tenho um visualizador de SKINS em vb6 que dá pra tirar o codigo mas nao sei como edita-lo.
grato.

 
Postado : 12/07/2015 8:16 am
(@adgere)
Posts: 76
Trusted Member
 
Sub IniciaListaPastas()
    
    Plan1.Range("a:b").ClearContents
    Plan1.ListBox1.Clear
    ListaPastas "C:teste"
    
End Sub
Sub ListaPastas(Caminho As String)

Dim objFSO As Object
Dim objfolder As Object
Dim objSubFolder As Object
Dim i As Integer
Dim ListBox1 As Object

'Create an instance of the FileSystemObject
Set objFSO = CreateObject("Scripting.FileSystemObject")
'Get the folder object
Set objfolder = objFSO.GetFolder(Caminho)

If Plan1.Cells(1, 1).Value = "" Then
   i = 1
Else
   If Plan1.Cells(2, 1).Value = "" Then
      i = 2
   Else
      i = Plan1.Rows(1).End(xlDown).Row
      i = i + 1
   End If
End If

'loops through each file in the directory and prints their names and path
For Each objSubFolder In objfolder.SubFolders
    
     
    'print folder name
    Cells(i, 1) = objSubFolder.Name
    'print folder path
    Cells(i, 2) = objSubFolder.Path
          
    i = i + 1

  With Worksheets("Plan1")
         Worksheets("Plan1").ListBox1.AddItem objSubFolder.Name
    End With
  
  ListaPastas objSubFolder.Path
  
Next objSubFolder
 
End Sub
 
Postado : 13/07/2015 2:38 am
(@xman2000)
Posts: 178
Estimable Member
Topic starter
 

Olá AdGere!
prazer em conhecer e muito grato, ficou perfeito.
vc reparou na imagem/tela que eu postei na planilha?

eu quero fazer ele em excel, seja num formulario seja com os controles direto na planilha.

eu tenho um arquivo ACCESS que é visualizador de imagens pronto, mas ele nao usa busca recursiva.
eu quero implementar recursividade em todos os controles dele

e adicionar os nomes e pastas das imagens ou objetos encontrados num listbox igual vc fez neste arquivo do excel.
depois, vou usar esse mesmo arquivo pra listar SKINS.

Eu já postei em outros foruns de Access e Vbmania.

a estrutura do Access está pronta e a do Excel eu consigo fazer.
vc pode me ajudar a fazer os codigos do visualizador no Excel ou no Access também?

 
Postado : 13/07/2015 11:10 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

XMAN, de uma olhada no link abaixo tem uma infinidade de exemplos só com figuras, é um site em frances, mas nada que o translation não resolva, não reparei se tem algum com recursive, mas quem sabe consegue ajustar ao que peretende, pois vi que tem uns que exibem em formulários e até em comentários da celula.

Les images et shapes
http://boisgontierjacques.free.fr/pages ... images.htm

[]s

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

 
Postado : 13/07/2015 11:19 am
(@xman2000)
Posts: 178
Estimable Member
Topic starter
 

Ola MaroCoutinho!

esse site é fera mesmo! mas o que preciso é de ajuda vba pra FSO-FileSytemObject pra busca recursivamente e adicionar os objetos achados numa listbox.
esses objetos serão pastas, arquivos e skins.
eu já sei como aplicar skins "skn" e de outros formatos.
os forms e objetos no Access estão prontos, falta o codigo FSO.
No Excel falta eu recriar a estrutura e parte do codigo.
Os skins são aplicados ao clickar no nome dele no listbox.
eu já tive um sistema desses há anos mas o HD foi pro saco.
abraço.

 
Postado : 13/07/2015 11:36 am
(@xman2000)
Posts: 178
Estimable Member
Topic starter
 

Olá AdGere!

anexo aqui a nova versão do Visualizador já com todos os controles activex na planilha.

gostaria muito que voce liste os arquivos na listbox, recursivamente da mesma maneira
que vc fez com as subpastas.

eu tentei muito e nao consegui.
anexo aqui a nova versão. Grato!

---------------------------------------------------------------------------------
post anterior:
Olá AdGere!
prazer em conhecer e muito grato, ficou perfeito.
vc reparou na imagem/tela que eu postei na planilha?

eu quero fazer ele em excel, seja num formulario seja com os controles direto na planilha.

eu tenho um arquivo ACCESS que é visualizador de imagens pronto, mas ele nao usa busca recursiva.
eu quero implementar recursividade em todos os controles dele

e adicionar os nomes e pastas das imagens ou objetos encontrados num listbox igual vc fez neste arquivo do excel.
depois, vou usar esse mesmo arquivo pra listar SKINS.

Eu já postei em outros foruns de Access e Vbmania.

a estrutura do Access está pronta e a do Excel eu consigo fazer.
vc pode me ajudar a fazer os codigos do visualizador no Excel ou no Access também?

 
Postado : 13/07/2015 2:23 pm
(@adgere)
Posts: 76
Trusted Member
 

Ola, XMAN2000

Num sei bem se é isso que esta precisando.. mas de uma olhada no anexo pra ver se ajuda...

Abraço

 
Postado : 14/07/2015 7:29 pm
(@xman2000)
Posts: 178
Estimable Member
Topic starter
 

Olá adGere!
ficou fantastico!

mas eu quero fazer direto na Planilha direto nos controles na celula,
em form eu vou fazer é no Access, que ja tenho a estrutura pronta,
falta o codigo que vou tentar aproveitar deste de excel.

agora estou precisando de ajuda pra fazer 2 coisas usando FSO (fileSystemObject):
o codigo pra filtragem dos tipos de arquivos imagens, (bmp, jpg, gif. todos os arquivos).
e o codigo também para o botão "UP" que "sobe" os diretorios que tem a setinha pra cima.

a minha dificuldade é em função de que programar pra objeto direto na celula é diferente de no formulario.

anexo o arquivo. Abraço.

 
Postado : 14/07/2015 8:42 pm
(@adgere)
Posts: 76
Trusted Member
 

Acho q é isso...

 
Postado : 15/07/2015 2:03 am
(@xman2000)
Posts: 178
Estimable Member
Topic starter
 

Olá adGERE!!!!
VALEU DEMAIS MAN!!!

mas preciso ainda de 2 coisas:
1-os nomes dos arquivos e pastas dentro dos cotroles estão aparecendo cortados, ilegiveis,
2- a Sub Listar(strPath As String, LimpaList As Boolean)- precisa utilizar o FSO e nao o Dir
o sisstema inteiro precisa usar o FSO recursivo.
no ultimo arquivo que eu postei já estava quase tudo proto em recursivo,
faltava:
1- fazer a filtragem dos arquivos por tipo de extensão (.bpm, .jpg, etc)
2- fazer o codigo do botão UP pra subir o nivel dos diretorios.
por favor eu lhe peço que veja o ultimo arquivo que anexei aqui neste topico.
e no outro topico que eu criei sobre Listar Musicas a função já está pronta no FSO, só precisando fazer a listibox receber os nomes das musicas que já sao exibidos nas celulas.
qualquer duvida pode perguntar.
ah, nao esqueça que os nomes estão aparecendo cortados na listibox, como se a linha estivesse estreita demais e a letra grande.
abraço.

 
Postado : 15/07/2015 6:56 am
(@adgere)
Posts: 76
Trusted Member
 

So por curiosidade, porque tem que ser com FSO?

 
Postado : 15/07/2015 9:59 am
(@xman2000)
Posts: 178
Estimable Member
Topic starter
 

Oi adGere!

eu fiz um sistema do mesmo jeito há alguns anos e meu HD estragou e perdi tudo.
eu ainda tenho um sistema em VB do mesmo que estamos fazendo, só que ele aplica skins, que é o que vou querer fazer depois
esse sistema em VB usa FSO em tudo, e eu na época pesquisei que FSO é melhor que DIR por exemplo, porque faz busca recursiva, que é algo que é melhor pra trabalhar quando vc tem Milhares de arquivos, muitas subpastas. Ele é mas rapido e trava menos.

eu também poderia "abrir" o sistema em VB (codigo fonte) e copiar as formulas, mas ainda nao tive tempo de fazer isso, não sei se tenho de instalar o VB6 na minha máquina ou como fazer pra ver o codigo desse sistema VB6.

No meu arquivo [FSO-XMAN2-ListDRIVES-v1-ok.xlsm] eu já consegui fazer tudo usando FSO Recursivo, exceto colocar o botao "UP" e o "filtro" de extensões de arquivos tipo JPG, BMP.

nos outros arquivos que já postei e anexo novamente abaixo, no arquivo de listar MUSICAS, já é FSO e possui escolha de formato de aquivo MP3 , MAS, o resultado vai pras celulas, e eu quero que carregue no LISTBOX.

Daria pra voce pegar o codigo do arquivo de Listar Musicas e colocar no arquivo ultimo que vc criou, onde adiciona os arquivos por extensão.

Uma grande vantagem do seu sistema é que vc colocou um checkbox pra escoher listar subpastas. Gostaria que colocasse de novo no novo sistema.
voce fez isso, mas nao usou o FSO. Nos meus arquivos de exemplo e de codigos Word que anexo aqui, acho que sao muito boas referencias.

confira os exemplos que anexei porque valem muito. Tem um testador de Skins em VB, talvez vc consiga abrir o codigo fonte.
anexo abaixo:

 
Postado : 15/07/2015 10:39 am
(@xman2000)
Posts: 178
Estimable Member
Topic starter
 

EdGere!

entendeu agora? eu não lembro agora com certeza as vantagens do FSO, mas lembro que dizia que era melhor pra listar grande volume de arquivos, talvez mais rápido e sem travamento.

pense o seguinte, que eu tenha coleçoes de musicas, de imagens e até queria litar todos os arquivos do computador ou de um HD externo

agradeço, abraço, vc é fera.

 
Postado : 15/07/2015 10:47 am
(@xman2000)
Posts: 178
Estimable Member
Topic starter
 

Olá adGERE!

analisei seu arquivo e vi que só precisa alterar a Sub --"Sub Listar(strPath As String, LimpaList As Boolean)"
pra usar FSO,

pois a function que ela executa já está em FSO e muito elegante.

 
Postado : 15/07/2015 11:45 am
(@adgere)
Posts: 76
Trusted Member
 

Segue planilha atualizada para FSO...

Particularmente discordo sobre a eficiencia do FSO sobre o DIR... com o FSO algumas pastas não são lidas, apresentando o erro 70 (pasta protegida), no DIR não apresentou esse erro... Alem disso, fiz um teste de tempo e utilizando o dir foi mais rapido... mas ai.. é uma questão de escolha...

Sobre o listbox que disse que esta cortando os nomes, tem que entrar em modo de design pela guia do desenvolvedor... clicar com o botão direito, propriedades.
Encontre a propriedade ColumnCount que diz quantas colunas tem... e a propriedade ColumnWidThs.. que é o tamanho de cada coluna, você tem que ajustar esta propriedade para ficar do tamanho desejado. Ou na propriedade Font e diminuir o tamanho...

Qualquer coisa é so escrever...

 
Postado : 16/07/2015 12:59 pm
Página 1 / 6