quarta-feira, 10 de setembro de 2025

🛰️ Automação em VBA: Scanner de Disponibilidade de Arquivos em Rede

 🧐 O Problema

Em ambientes empresariais:

  • Existem planilhas críticas salvas em pastas de rede.

  • Muitas vezes alguém tenta abrir e… ❌ “Arquivo não encontrado” ou “Rede indisponível”.

  • Não existe uma forma rápida de o próprio Excel testar se os arquivos estão acessíveis antes de usá-los em macros ou relatórios.


💡 A Solução

Criar uma automação em VBA que funciona como um scanner de arquivos de rede:

  • Lê uma lista de caminhos de arquivos (armazenada em uma aba chamada "MapeamentoRede").

  • Testa se cada arquivo realmente existe na rede.

  • Retorna em uma aba "StatusRede" com:

    • 📂 Caminho do arquivo

    • ✅ Disponível ou ❌ Não encontrado

    • ⏱️ Data/hora do último teste

Isso transforma o Excel em um validador de links de rede corporativa.


🚀 Como Funciona

  1. Na aba "MapeamentoRede", o usuário lista os arquivos da rede que deseja monitorar.
    Exemplo:

    Caminho do Arquivo
    \Servidor01\Financeiro\Vendas.xlsx
    \Servidor02\RH\Folha.xlsx
    \Servidor03\TI\Inventário.xlsx
  2. Executa a macro.

  3. Na aba "StatusRede", o VBA preenche automaticamente o resultado da checagem.


🧑‍💻 Código VBA

Sub ScannerArquivosRede() Dim wsMap As Worksheet, wsStatus As Worksheet Dim ultimaLinha As Long, i As Long Dim caminho As String, existe As Boolean ' Define as planilhas Set wsMap = ThisWorkbook.Sheets("MapeamentoRede") ' Cria/limpa a aba de status On Error Resume Next Set wsStatus = ThisWorkbook.Sheets("StatusRede") If wsStatus Is Nothing Then Set wsStatus = Sheets.Add wsStatus.Name = "StatusRede" End If wsStatus.Cells.Clear On Error GoTo 0 ' Cabeçalho wsStatus.Range("A1:C1").Value = Array("Caminho do Arquivo", "Status", "Última Verificação") ' Última linha na aba de mapeamento ultimaLinha = wsMap.Cells(wsMap.Rows.Count, 1).End(xlUp).Row ' Varre cada caminho listado For i = 2 To ultimaLinha caminho = wsMap.Cells(i, 1).Value If Dir(caminho) <> "" Then wsStatus.Cells(i, 1).Value = caminho wsStatus.Cells(i, 2).Value = "✅ Disponível" Else wsStatus.Cells(i, 1).Value = caminho wsStatus.Cells(i, 2).Value = "❌ Não encontrado" End If wsStatus.Cells(i, 3).Value = Now Next i MsgBox "🔎 Verificação concluída! Veja a aba 'StatusRede'.", vbInformation End Sub

📊 Exemplo de saída (StatusRede)

Caminho do ArquivoStatusÚltima Verificação
\Servidor01\Financeiro\Vendas.xlsx✅ Disponível06/09/2025 10:30:15
\Servidor02\RH\Folha.xlsx❌ Não encontrado06/09/2025 10:30:15
\Servidor03\TI\Inventário.xlsx✅ Disponível06/09/2025 10:30:15

🎯 Onde é útil?

✅ Controle de links críticos de relatórios.
✅ Auditoria de acessibilidade em pasta de rede compartilhada.
✅ Evitar erros em macros que dependem de arquivos externos.
✅ Monitoramento de servidores corporativos.


🔥 Por que é útil ?

Pouca gente pensa em usar Excel VBA como um monitor de acessibilidade de arquivos em rede.
Normalmente isso é feito com scripts de TI (PowerShell, Python).
Aqui, qualquer usuário corporativo pode rodar direto do Excel.

Nenhum comentário:

Postar um comentário