Notifications
Clear all

descobrir Extensão (BMP, JPG, MP3) do arquivo

14 Posts
2 Usuários
0 Reactions
3,336 Visualizações
(@xman2000)
Posts: 0
New Member
Topic starter
 

descobrir Extensão (BMP, JPG, MP3) do arquivo

Olá colegas,
gostaria de descobrir a extensão de arquivos a serem listados numa listbox.
não vai ser em formuario, vai ser na celula mesmo

descobri que existe o GetExtensionName, mas nao consigo usar.
gostaria que uma sub vba comparasse se os arquivos encontrados fossem de determinada extensção (JPG)
e só listasse na listbox esses arquivos dessa extenção. E assim por diante.
Seria usado um string pra armazenar a extensão desejada a ser comparada, cada vez que eu clickasse
em um OptionButton mudaria essa extensão.
grato.
-----------------------------------------------------------------------------------------

ThisWorkbook.Activate

Path2 = Range("B1").Value

If IsError(Path2) Then Path2 = "C:Temp"

Set abr = CreateObject("Scripting.FileSystemObject")

Set here = abr.GetFolder(Path2)

For Each FileOpen In here.Files 'percorre lista de arquivos

If abr.GetExtensionName(FileOpen.Path) = "xls" Then

Workbooks.Open Filename:=FileOpen.Path

Windows(FileOpen.Name).Activate

 
Postado : 22/07/2015 6:37 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Esta questão não seria a mesma em que o gere esta lhe auxiliando em seus tópicos referentes a "visualizador Imagens FSO Recursiva" ? Para mim está parecendo ser sobre o mesmo assunto, se for avise que junto todos os tópicos que abriu em um só.

 
Postado : 22/07/2015 7:34 pm
(@xman2000)
Posts: 0
New Member
Topic starter
 

Olá Mauro!
esta questão faz parte do outro caso, mas é "só mais uma" porque sao varias as coisas a acertar, que sei que sao simples pra quem é fera e complicado pra mim.

seu eu nao abrir topicos separados pra cada item, ninguem vai querer ir lá num topico de 8, 15 paginas, ter de ler tudo, baixar todos os arquivos, analisar, etc.

minha cabeça me diz assim: se o projeto ficou complexo, é necessário isolar alguns elementos pra resolve-los com rapidez e eficiencia.

mas vcs que mandam, eu só aceito.
abraço.

 
Postado : 22/07/2015 8:00 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Não sei se entendi, mas experimente assim:

ThisWorkbook.Activate


path2 = Range("B1").Value

If IsError(path2) Then path2 = "C:Temp"
Set abr = CreateObject("Scripting.FileSystemObject")
Set here = abr.GetFolder(path2)

For Each FileOpen In here.Files 'percorre lista de arquivos
sExtencao = abr.GetExtensionName(FileOpen)
If sExtencao = "jpg" Then MsgBox "achei"
Next
Workbooks.Open Filename:=FileOpen.Path

Windows(FileOpen.Name).Activate
 
Postado : 22/07/2015 8:22 pm
(@xman2000)
Posts: 0
New Member
Topic starter
 

Olá Reinaldo!
muito grato pela ajuda.
o codigo que postei foi só de exemplo.
eu quero é que passe os valores pra uma ListBox de acordo com a extensao selecionada.
pra isso preciso 1o saber como colocar uma extensao como criteiro.
e saber como pegar via vba a extensao dos arquivos buscados no pc.
detlhe: eu nao saberei, nao informarei, os nomes dos arquivos buscados, apenas o local e a extensão.

envio em anexo varios codigos em documento word
assim que eu implementar (se for possivel) eu dou retorno.
abraço.

 
Postado : 22/07/2015 8:51 pm
(@xman2000)
Posts: 0
New Member
Topic starter
 

Reinaldo!
não vou conseguir!
era só um exemplo da função abr.GetExtensionName(FileOpen)
eu preciso é listar esses arquivos encontrados numa listbox e nao abri-los.
grato.

 
Postado : 22/07/2015 9:00 pm
(@xman2000)
Posts: 0
New Member
Topic starter
 

Olá Reinaldo,
segue arquivo pra fazer as modficações se vc puder.
ele não usa FSO.
Eu quero usar FSO em tudo.
mas o principal é essa questão das extensões na listbox.
abraço.

 
Postado : 22/07/2015 9:08 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Reinaldo!
não vou conseguir!
era só um exemplo da função abr.GetExtensionName(FileOpen)
eu preciso é listar esses arquivos encontrados numa listbox e nao abri-los.
grato.

Acredito que não tenha problemas em continuar num tópico só, mas vou deixar esta decisão ao Administrador, na minha opinião deveriámos manter em um só, eu cheguei a ler, e acabei me confundindo a acada tópico que abria.

Quanto ao ListBox, se não me engano o AdGere já havia feito isto em um dos posts no tópico que citei acima, até com outros tipos de extensão.
[]s

 
Postado : 22/07/2015 9:26 pm
(@xman2000)
Posts: 0
New Member
Topic starter
 

Oi Mauro Coutinho!

vour respeitar qualquer decisao de voces.
mas vc já está confundindo, porque o outro tópico e grande.
eu nao consegui uma vba ou função que fosse simples e pratica de implementar,
podendo eu alterar a extensao do arquivo facilmente.
havia muita coisa que eu nao entendia e por isso ficaria ruim pra dar manutenção no codigo.
O Codigo FSO usado pra listar arquivos, principalmente skins, é o melhor pra mim,
mas nao consigo implantar nele a filtragem de extensoes de forma simples.
eu vi esse tipo de coisa e coloquei em arquivos word e anexei inclusive neste topico, no outro
nao coloquei ainda o anexo deste.

eu gostaria de poder ter topicos pra problemas pontuais e juntar tudo depois naquele topico maior.
de qualquer jeito,
abraço. vamos à labuta.

 
Postado : 22/07/2015 9:50 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

XMAn, de fato devo estar confundindo, mas por estar confuso ou realmente não estar entendendo sua necessidade, o modelo que anexou neste tópico, é o mesmo que temos no topico que citei - viewtopic.php?f=10&t=16572&start=60, e faz justamente o que quer, ou seja, clica-se no optionbutom com a extensão desejada e o listbox é preenchido com estes tipos de arquivos e caminho, e ao clicar em algum o mesmo é visualizado no controle image.
Então não estou conseguindo captar a mensagem.

Editando :
Você ja chegou a ver este modelo :
Folder Tree
http://www.cpearson.com/Excel/foldertree.aspx

ou

Creating A Folder/File Tree View
http://www.cpearson.com/Excel/FolderTreeView.aspx

[]s

 
Postado : 23/07/2015 6:43 am
(@xman2000)
Posts: 0
New Member
Topic starter
 

Olá Mauro.
agradeceço mais uma colaboração sua,
vou analisar com tempo seus links,
já entrei e salvei as paginas e os arquivos.

mas, voltando ao assunto:
o exemplo que postei nao usa FSO e nao deixa claro
o funcionamento de como faz pra comparar uma extensão
e entao filtra-la.
estou procurando exemplos mais simples FSO que evidenciem isso.
eu salvei grande quantidade de codigo em arquivos word e sempre envio
pro pessoal analisar e perceber essa questao.

como o outo topico tem varios aspectos, de vez em quando eu desmebro um deles,
senao daqui a pouco e passa a ter 50paginas.
o arquivo que anexei é pra usar a estrutura. Implantar um FSO que busque no pc e liste na Listbox os arquivos pela extensão
escolhida no OptionButton.
aí a 1a coisa a ser feita é saber reconhecer via vba a extensão do arquivo buscado e comparar ele com o "pradrão" desejado,
se for igual lista no listbox, se for diferente nao faz nada
abraço.

 
Postado : 23/07/2015 7:50 am
(@xman2000)
Posts: 0
New Member
Topic starter
 

Olá Camaradas!

segue anexo o arquivo Excel e 2 arquivos Word com diversos codigos interessantes
nao consegui fazer nenhum funcionar ainda
lembrando que quero comparar a extensão do arquivo buscado com uma predefinida usando FSO.
essa predefinida vai mudar cada vez que eu clickar num OptionButton.
fico no aguardo.
grato.

 
Postado : 24/07/2015 8:06 am
(@xman2000)
Posts: 0
New Member
Topic starter
 

esqueci de dizer que os arquivos serao listados numa listbox e que existe
uma tecnica split que encontra o último ponto (.) do nome do arquivo e daí pega os ultimos caracteres à direita.
grato.

 
Postado : 24/07/2015 8:14 am
(@xman2000)
Posts: 0
New Member
Topic starter
 

Estou no metodo tentativa e erro
Dá erro: Instrução Invalida fora do bloco type
trabahando no "botão" "extensoesC"
os outros botoes azuis também tem tentativas

Sub Extensao4()

Dim objFolder As Object
Dim fs As Object
Dim objFSO As Object
Arq As Object

Set fs = CreateObject("Scripting.FileSystemObject")
Set objFolder = fs.getFolder("C:teste")

Extensao = fs.GetExtensionName(Arq.objFolder)

'For Each Arq In folder.Arq
'next = UCase(fso.GetExtensionName(File.path))
'Next

'Set objFiles = objFSO.GetFolder(objFolder).Files
With Worksheets("Arqs")

Worksheets("Arqs").ListBox4.AddItem File

End With

End Sub

 
Postado : 24/07/2015 11:56 am