Verifique se o caminho para o arquivo está correto na Coluna do Excel

1

Eu tenho um arquivo do Excel com várias colunas, uma das colunas tem um caminho para uma imagem em uma pasta remota (ou local, não importa).

\xxx.xxx.xxx.xxx\folder\image.jpg

Quero verificar se todas as URLs ou PATHs para os arquivos estão corretas.

Se um estiver errado ou não apontar para um arquivo real (ou o endereço estiver ruim), então destaque-o em vermelho (ou apenas sinalize-o de alguma forma).

Espero que isso faça sentido. Eu sei que posso fazer isso com Macros ou VBA, mas não sei a sintaxe.

Obrigado!

    
por villancikos 24.09.2013 / 18:54

2 respostas

3

Você pode usar uma UDF ( função definida pelo usuário ) para verificar se um caminho de arquivo é válido ou não.

No Excel, pressione ALT + F11 para ativar o Editor do Visual Basic (VBE).

Clique com o botão direito do mouse em qualquer lugar no VBA Project Explorer »Inserir» Módulo.

Copie e cole o código abaixo

Function FileExist(path As String) As Boolean
    If Dir(path) <> vbNullString Then FileExist = True
End Function

Agora, volte para a visualização de sua planilha. Entre em qualquer célula e digite:

=FileExist(A1)

onde A1 é referência de célula que contém o caminho do arquivo

por exemplo:

Alémdisso,vocêpodeusara formatação condicional ou o VBA para realçar as células com base no valor.

    
por 25.09.2013 / 10:19
0

Descobri isso. Tenho certeza que outras pessoas vão ler isso como eu fiz hoje. Você precisará de dois módulos (um para extrair os hiperlinks e um para testar o diretório do caminho do arquivo)

Module1 (para hiperlinks)

    Function HLink(rng As Range) As String
    'extract URL from hyperlink
     'posted by C.F. Stotch! - shoutout to Richard K!
      If rng(1).Hyperlinks.Count Then HLink = rng.Hyperlinks(1).Address
    End Function

Module2 (para teste de diretório)

     Function FileOrDirExists(PathName As String) As Boolean 'used to test filepaths of commmand button   links to see if they work - change their color if not working
  'Macro Purpose: Function returns TRUE if the specified file
   Dim iTemp As Integer

 'Ignore errors to allow for error evaluation
On Error Resume Next
iTemp = GetAttr(PathName)

 'Check if error exists and set response appropriately
Select Case Err.Number
Case Is = 0
    FileOrDirExists = True
Case Else
    FileOrDirExists = False
End Select

 'Resume error checking
   On Error GoTo 0
    End Function

'' '' 'E ABAIXO É O QUE VOCÊ INSIRAVA NA SUA FOLHA E ATIVAR COMO VOCÊ DESEJA, através do botão de comando ou como você deseja. Eu tenho auto-execução quando a planilha é ativada :) Felicidades!

     Private Sub TestFilesExist()
   Dim xCheck As Integer
  'starting in the 3rd row....
 xCheck = 3
   On Error GoTo 0
    'Debug.Print Range("A" & xCheck).Value
    While xCheck < 36

       'xPather - checks if Z1 is a good path and then either highlights the actual cell in A column red if bad, or no fill if good.
      Dim sPath As String
      Dim XPather As String

'need a cell to put the hyperlink addresses into during the loop check as was not able to find the hyperlink address straight out of the cell containing the hyperlink. Extraction if you will. :)

ThisWorkbook.Sheets(1).Range("Z1").Value = "=HLink(A" & xCheck & ")"
XPather = ThisWorkbook.Sheets(1).Range("Z1").Value

Debug.Print XPather

 'Tests if directory or file exists
If FileOrDirExists(XPather) = False Then
    Range("A" & xCheck).Interior.ColorIndex = 3
Else
    Range("A" & xCheck).Interior.ColorIndex = xlNone
End If

    xCheck = xCheck + 1
    Wend

    End Sub
    
por 17.02.2015 / 09:31