Jump to content
caldeira.istec

Contar ficheiros por parte do nome numa pasta especifica

Recommended Posts

caldeira.istec

Caros Amigos,

Estou agora pela primeira a tentar dedicar-me a aprender VBA.

Gostaria que me ajudassem na seguinte situação. Imaginem que tinha uma pasta no meu computador com 50 ficheiros caracterizados com nomes diferentes de 8 digitos, tendo alguns ficheiros no entanto em comum os primeiros 3 digitos.

No excel pretendo colocar nas células A1 a A10 valores de 3 digitos, alguns com correspondencia com o inicio do nome de alguns ficheiros que tenho na pasta. Essa pasta por exemplo é c:\arquivo\teste  e os ficheiros têm a extensão DWG.

Que código devo associar a um botão a colocar na sheet de forma a que ele conte os ficheiros na pasta anterior e cujo nome começa pelo conteudo da célula A1, colocando a contagem do numero de ficheiros na célula B1, pelo conteudo da célula A2, colocando a contagem do numero de ficheiros na célula B2, pelo conteudo da célula A3, colocando a contagem do numero de ficheiros na célula B3, e por aí sucessivamente até à célula A10.

Se o nome da célula A? não se identificasse com nenhum ficheiro, na célula B? aparecia o valor 0.

Muito obrigado pela ajuda que me possam prestar.

😳

Share this post


Link to post
Share on other sites
HIT_Braga

Bom dia

Vou deixar-te aki uma pista, mas tens de começar por algum lado...

' make a reference to a directory
        Dim di As New IO.DirectoryInfo("c:")
        Dim diar1 As IO.FileInfo() = di.GetFiles("123*.txt")
        Dim dra As IO.FileInfo

        'list the names of all files in the specified directory
        For Each dra In diar1
            ListBox1.Items.Add(dra)
            TotalFiles = TotalFiles + 1
        Next

Com este código procuras os ficheiros na pasta que queres, com a extensão,nome que desejas.

Agora tens de adaptar ao teu caso.

Sds,

HIT


" Elogios não me elevam, ofensas não me rebaixam, sou o que sou e não o que acham! "

Share this post


Link to post
Share on other sites
FreiNando

Podes criar uma função para colocar na coluna B e nem precisas de clicar em nenhum botão

A função pode ser algo como isto:

Public Function ContarFicheiros(ByVal Pasta As String, ByVal Texto As String) As Long
    Dim S As String, I As Long
    
    If Right(Pasta, 1) <> "\" Then Pasta = Pasta & "\"
    Texto = Texto & "*.dwg"
    'a extensão pode também ser colocada como parametro:
    'Texto = Texto & "*." & Extensao
    
    S = Dir(Pasta & Texto) 'S contém o nome do 1º ficheiro encontrado
    
    Do Until S = ""
        I = I + 1
        S = Dir() 'S contém o nome do proximo ficheiro da sequência
    Loop
    ContarFicheiros = I
End Function

Metes o nome da pasta numa celula, e inseres esta formula nas celulas da coluna B onde irá aparecer o numero de ficheiros que contenham aquele texto no inicio do nome.

Coloca esta formula num modulo de VBA.

Desculpa HIT_Braga mas o VBA não suporta .NET e o mais parecido com isso é o Shell32(Microsoft Shell Controls and Automation), que é complicado de utilizar.


O caminho mais curto para conseguir fazer muitas coisas é fazer uma de cada vez. Samuel Smiles

Share this post


Link to post
Share on other sites
caldeira.istec

Obrigado aos dois pela dica. Amanhã vou testar. Depois digo como ficou.

Uma abraço.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.