none
Macro para Obter Informação de E-mail, e Atualizar Excell RRS feed

  • Pergunta

  • Olá,

    Estou precisando de uma solução para ler uma informação específica em um e-mail, e com base neste informação, atualizar uma célula da planilha do excel.

    Como exemplo:

    Tenho uma planilha de excel que controla operacionalidade de equipamentos, informando "Operacional" e "Inoperante".

    Com base em e-mails automaticos de sistema que recebo pelo outlook, gostaria de atualizar automaticamente esta coluna de minha planilha. O e-mail chega com várias informações fornecidas pelo sistema, e em determinada linha, a informação do tipo:

    Anemômetro: Operacional (ou pode apresentar Inoperante)

    Desta forma, eu gostaria de ler o status do sensor Anemômetro, e com base nisto, atualizar a coluna de um arquivo excel.

    Poderiam me auxiliar nesta questão?

    Obrigado!

    Diego

    quinta-feira, 21 de setembro de 2017 21:58

Todas as Respostas

    • Sugerido como Resposta AndersonFDiniz2 quinta-feira, 21 de setembro de 2017 22:08
    quinta-feira, 21 de setembro de 2017 22:08
  • Olá Anderson,

    Obrigado pelo retorno. Indo um pouco mais além, tenho várias abas em uma planilha. Digamos que eu receba um e-mail e queira modificar a informação na aba GUARA, coluna G, linha 10. Eu gostaria de modificar a informação de OPERACIONAL para INOPERANTE.

    Como ficaria a adaptação do código direcionado?

    Atte,

    Diego

    quarta-feira, 27 de setembro de 2017 20:32
  • Caro Diego,

    Espero que lhe ajude o código que montei, porem ele só lê só email's, para faze-lo gravar na célula acredito que não será complicado, por favor veja se esse código lhe ajuda.

    Public Sub Ler_email()
    
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Application.EnableEvents = False
    
        Dim NSession As Object
        Dim NMailDb As Object
        Dim NDocs As Object
        Dim NDoc As Object
        Dim NNextDoc As Object
        Dim NItem As Object
        Dim view As String
        Dim filterText As String
        Dim vMsg As Variant
        Dim text As String
    
        
        view = "$All"       'Nome da Pasta ou Caixa de entrada
    1:
    
    text = InputBox("Qual assunto você gostaria de procurar? " & _
        vbNewLine & "(ex: Agendamentos)")
    
        
        
        filterText = text   'Procura por nome do titulo
        
        Set NSession = CreateObject("Notes.NotesSession")
        Set NMailDb = NSession.GetDatabase("", "")
        If Not NMailDb.IsOpen Then
            NMailDb.OpenMail
        End If
        
        Set NDocs = NMailDb.GETVIEW(view)
        NDocs.Clear
            
        If filterText <> "" Then
            NDocs.FTSEARCH filterText, 0
        End If
          
        Set NDoc = NDocs.GETFIRSTDOCUMENT
        Do Until NDoc Is Nothing
            Set NNextDoc = NDocs.GETNEXTDOCUMENT(NDoc)
            Set NItem = NDoc.GETFIRSTITEM("Body")
            If Not NItem Is Nothing Then
                MsgBox Prompt:=NItem.text, Title:=NDoc.GetItemValue("Subject")(0)
            End If
            Set NDoc = NNextDoc
        Loop
    
    
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    Application.EnableEvents = True
    
    End Sub

    sexta-feira, 29 de setembro de 2017 02:25