Important:

Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog podem ser tratados como consultoria freelance.

...

Views

7 de janeiro de 2013

VBA Basic - Verifica se o arquivo ou o caminho existem



Esta função VBA (UDF - User Defined Function) testa se um arquivo (file) ou um caminho (path) existem ou se são válidos. 

Se desejar utilizar esta função para testar um caminho, precisará obrigatoriamente colocar "\" como último caracter do Path.

Function Check()
    Dim nFrase As String
    
    Let nFrase = "c:\Bernardes\Dashboard.xlsb"

    If DeepCheck (nFrase) Then

        MsgBox "O caminho e/ou arquivo '" & nFrase & "' existe é válido." _
          , vbInformation _
          , "Informação"

    Else

        MsgBox "O caminho e/ou arquivo '" & nFrase & "' é inválido ou não existe." _
          , vbCritical _
          , "Erro"

    End If
End Sub

Function DeepCheck (nPath As String) As Boolean    
    If Dir (nPath) = vbNullString Then
        Let DeepCheck = False
    Else
        Let DeepCheck = True
    End If    
End Function

Abaixo observamos um código simples que lista todos os arquivos de um determinado diretório.

Está configurado para usar a função Dir para obter as informações sobre onde arquivos estão armazenados na pasta / diretório. Em seguida, simplesmente grava os dados da planilha. É possível utilizar os dados em uma matriz se desejar modificar e usá-lo em outro aplicativo da suíte MS Office. Esta é uma função boa quando precisa gravar um arquivo ou realizar uma operação em todos os arquivos armazenados numa determinada pasta, mas não sabe exatamente como os arquivos são chamados ou quantos são. 

Divirta-se!

Sub ListFilesInDirectory()

Range("A5:A2000").ClearContents

Dim ListFilesInDirectory (10000, 1)
Dim One_File_List   As String
Dim Number_Of_Files_In_Directory As Long

Let One_File_List = Dir$ ("C:" + "\*.*")

Do While One_File_List <> ""
    Let ListFilesInDirectory (Number_Of_Files_In_Directory, 0) = One_File_List
    Let One_File_List = Dir$
    Let Number_Of_Files_In_Directory = Number_Of_Files_In_Directory + 1
Loop

Let Number_Of_Files_In_Directory = 0

While List_Files_In_Directory(Number_Of_Files_In_Directory, 0) <> tom

    Let Range("A5").Offset(Number_Of_Files_In_Directory, 0).Value = ListFilesInDirectory (Number_Of_Files_In_Directory, 0)

    Let Number_Of_Files_In_Directory = Number_Of_Files_In_Directory + 1
Wend

End Sub

Tags: VBA, UDF, user, defined, function, path, file, exist, Dir, directory, files, 

LinkWithin

Related Posts Plugin for WordPress, Blogger...

Vitrine