Notifications
Clear all

Importando dados de um servidor de internet

5 Posts
2 Usuários
0 Reactions
1,079 Visualizações
(@vguedes)
Posts: 47
Trusted Member
Topic starter
 

Prezados, boa tarde.

Temos na empresa um sistema de monitoramento remoto online. Este sistema monitora o funcionamento de determinados equipamentos, informando diversos dados com relação a operação do equipamento.

Hoje conseguimos baixar um relatório em arquivo TXT, e dessa maneira passar os dados para uma planilha.

Gostaria de saber se existe a possibilidade de automatizar este processo com uma macro que colete as informações no servidor do site e jogue elas para o excel, sem precisar baixar este relatório.

Se alguém tiver um código padrão já me ajuda.

Um abraço,

Vicente

 
Postado : 13/10/2016 2:12 pm
(@basole)
Posts: 487
Reputable Member
 

Se o sistema de monitoria, armazenar os dados em um banco web MySql remoto, por exemplo,
Através de macro voce pode importar esses dados, diretamente para o excel.

 
Postado : 13/10/2016 2:56 pm
(@vguedes)
Posts: 47
Trusted Member
Topic starter
 

Obrigado Basole.

Você por acaso tem o código para realizar esta ação?

 
Postado : 13/10/2016 5:19 pm
(@basole)
Posts: 487
Reputable Member
 

Bom dia Vguedes,

Tem varios exemplos na net, mas para 'rodar', é necessario algumas providendias:

Ter um host mysql remoto, ter acesso a senha do seu banco, instalar (caso ainda não tenha), o Connector/ODBC (qq versao), (link):
https://dev.mysql.com/downloads/connector/odbc/, de acordo com a versão do seu sistema operacional.

Segue exemplo (insira os dados, host, banco de dados, usuario, senha, nas celulas indicadas e ainda alterar o nome da sua tabela, Habilitar a referencia Microsoft ActiveX Data Objects 2.8 Library):

  Sub connect()
    Dim Password As String
    Dim SQLStr As String
    'OMIT Dim Cn statement
    Dim Server_Name As String
    Dim User_ID As String
    Dim Database_Name As String
    'OMIT Dim rs statement

    Set rs = CreateObject("ADODB.Recordset") 'EBGen-Daily
    Server_Name = Range("b2").Value
    Database_name = Range("b3").Value ' Name of database
    User_ID = Range("b4").Value 'id user or username
    Password = Range("b5").Value 'Password

    SQLStr = "SELECT * FROM ComputingNotesTable"

    Set Cn = CreateObject("ADODB.Connection") 'NEW STATEMENT
    Cn.Open "Driver={MySQL ODBC 5.2.2 Driver};Server=" & _ 
            Server_Name & ";Database=" & Database_Name & _
            ";Uid=" & User_ID & ";Pwd=" & Password & ";"

    rs.Open SQLStr, Cn, adOpenStatic

    Dim myArray()

    myArray = rs.GetRows()

    kolumner = UBound(myArray, 1)
    rader = UBound(myArray, 2)

    For K = 0 To kolumner ' Using For loop data are displayed
        Range("a5").Offset(0, K).Value = rs.Fields(K).Name
        For R = 0 To rader
           Range("A5").Offset(R + 1, K).Value = myArray(K, R)
        Next
    Next

    rs.Close
    Set rs = Nothing
    Cn.Close
    Set Cn = Nothing
End Sub
 
Postado : 14/10/2016 6:58 am
(@vguedes)
Posts: 47
Trusted Member
Topic starter
 

Prezado Basole, muito obrigado!

Vou reunir as informações necessária e assim que testar volto aqui informando se deu certo ou não.

De qualquer forma, desde já agradeço pelas informações.

Um abraço,

Vicente

 
Postado : 14/10/2016 10:23 am