Criando um Ping Tester no VBA do Excel

E ae pessoal tudo bem com vocês?

Estou aqui escrevendo meu primeiro artigo no portal, e este tem por base uma necessidade que passei e contornei sem custos. Estava precisando de um software para monitorar alguns serviços aqui na empresa em que trabalho, um software que poderia verificar se meus servidores, alguns aparelhos VoIPs e impressoras estão conectados na rede ou por algum motivo desconectado.

Imagem via Shutterstock

Imagem via Shutterstock

Começei uma busca na internet, encontrei softwares bons e ruins, mas a grande maioria pagos. Não queria investir em um software deste ramo, visto que era um simples “PING” para um endereço. Bom, então foi aí que busquei meus 12 anos em desenvolvimento de sistemas e resolvi criar um “Ping Tester no Excel”, onde poderia monitorar se algum serviço está desconectado ou não.

Bom vamos lá, no passo a passo da criação.

1º Passo – Criar o layout da Planilha

Vamos criar uma planilha conforme a imagem demonstrada abaixo, com colunas de IP, descrição do Equipamento e o Status de conectado ou não.

planilhaExcel

2º Passo – Vamos Programar

Para programar dentro do Excel utilizamos a linguagem VBA (Visual Basic for Application), uma linguagem muito parecida com Visual Basic, que tem um mercado muito interessante em muitas regiões.

Para acessar o ambiente de programação VBA no excel, vá na guia “Desenvolvedor” e clique no botão “Visual Basic” como demonstrado abaixo.

visualBasic

Com isso você irá para um ambiente de programação VBA.

Abaixo, mostro um pouco das ferramentas para familiarização com a nova tela.

tools

2.1 – Adicionando um módulo

Bom, com isso podemos programar. Comece clicando no botão “Novo”, e escolha a opção “Módulo”, automaticamente será adicionado um novo modulo no “project explorer”. Clique duas vezes neste módulo e vamos começar a digitar nossas linhas de programação.

Public Type ping

                ‘ Aqui estamos criando um tipo de variavel novo, este tipo de variavel se chamará “PING”
                ‘E este tipo de variavel terá uma descrição um tamanho de buffer e outros itens interessantes.

               descricao As String
bufferSize As String
bufferTime As String
TTL As String

End Type

Public Sub executaTeste()

‘ Aqui estou criando uma chamada para um forme que iremos criar em sequencia.
frmTestaConexao.Show 1

End Sub

2.2 – Adicionando um Formulário

Agora vamos clicar novamente no botão “Novo” e escolher formulário. Note que em seu “project explorer” será incluído um novo formulário.

Clique sobre o formulário e na janela de propriedades, localizada abaixo do “project explerer”, altere a propriedade “(name)” para frmTestaConexao.

Agora vamos desenhar a tela conforme demonstrada abaixo.

design

Após desenhar o layout acima, é preciso dar os nomes corretos aos botões.

Clique uma vez sobre o botão “Iniciar Teste” e altere sua propriedade “Name” para “cmdReTestar”. Depois clique sobre o fechar e altere seu “Name” para “cmdSair”. Clique no label e altere a propriedade “Name” para “lblTexto” e “caption” para “Sistema preparado para testar.”

Com o procedimento acima realizado, clique no botão alterar o modulo para programação e informe a programação conforme abaixo:

Function sPing(sHost) As ping

Dim oPing As Object, oRetStatus As Object

Set oPing = GetObject(“winmgmts:{impersonationLevel=impersonate}”).ExecQuery _
(“select * from Win32_PingStatus where address = ‘” & sHost & “‘”)

For Each oRetStatus In oPing

If IsNull(oRetStatus.StatusCode) Or oRetStatus.StatusCode <> 0 Then

sPing.descricao = “”
sPing.bufferTime = 0

Else

sPing.descricao = “Sucesso”
sPing.bufferSize = oRetStatus.bufferSize
sPing.bufferTime = oRetStatus.ResponseTime
sPing.TTL = oRetStatus.ResponseTimeToLive

End If

Next

End Function

Private Sub cmdReTestar_Click()
testaRede
End Sub

Private Sub cmdSair_Click()
Unload Me

End Sub

 

Private Sub testaRede()
‘limpa os status
lblTexto.ForeColor = vbBlack
Plan15.Range(“C4″, “C500″) = “”

Dim linha As Integer
Dim dados As ping
Dim qtdErros As Integer

linha = 4
qtdErros = 0
While Plan15.Cells(linha, 1) <> “”
lblTexto.Caption = “Testando conexão servidor: ” & Plan15.Cells(linha, 1) & ” – ” & Plan15.Cells(linha, 2)
DoEvents

dados = sPing(Plan15.Cells(linha, 1))
If Not Trim(dados.descricao) = “” Then
Plan15.Cells(linha, 3) = dados.descricao & ” – ” & dados.bufferTime & “ms”
Plan15.Cells(linha, 3).Font.Color = vbGreen
lblTexto.ForeColor = vbBlack
Else
Plan15.Cells(linha, 3) = “Erro”
Plan15.Cells(linha, 3).Font.Color = vbRed
lblTexto.ForeColor = vbRed

qtdErros = qtdErros + 1
End If

linha = linha + 1
Wend

If CInt(qtdErros) = 0 Then
lblTexto.Caption = “Testes Concluido com SUCESSO.”
lblTexto.ForeColor = vbBlack
Else
lblTexto.Caption = “Testes Concluido, com ERROS.”
lblTexto.ForeColor = vbRed
End If

End Sub

Com isso temos a programação do nosso “ping tester” pronta, agora podemos inserir qualquer componente na planilha do Excel e criar um vinculo com a macro “executaTeste” que criamos no modulo.

Vocês podem fazer o download da planilha clicando aqui.

Espero que tenham gostado do primeiro post. Deixem abaixo seus comentários com complementos e dúvidas.

Abraços.

Fonte: Profissionais TI

Nenhum comentário

Comentários Facebook