Obtener datos de correo Outlook y registrarlos de manera automática en Excel según las líneas recibidas en el correo

Generalmente aquí se ven ejemplos de como enviar correos a través de excel, sin embargo lo que necesito yo es la inversa a esto.

Tengo correos que siempre llegan en el mismo formato, y necesito que en vez de estar digitandolos en excel, se guarde la información de manera automática en un libro excel según el siguiente orden:

Linea1 correo => Columna A2

Linea2 correo => Columna B2

Linea3 correo => Columna C2

Y así sucesivamente... Estos correos siempre llegan a mi carpeta de correo llamada IMS, y es necesario que el más actual este siempre en la fila 2, es decir que el registro vaya desplazándose hacia abajo a medida que entren nuevos.

Ojala alguien pueda ayudarme

Respuesta
2

H o l a:

Tengo esta macro que lee los correos "No leídos", de tu carpeta de outlook que tienes por default.

El último correo queda en la fila 2.

Sub LeerCorreo()
'Por.Dante Amor
'Fuente: http://stackoverflow.com/questions/8322432/using-visual-basic-to-access-subfolder-in-inbox
    Dim olApp As Outlook.Application
    Dim objNS As Outlook.Namespace
    Dim olFolder As Outlook.MAPIFolder
    Dim msg As Outlook.MailItem
    '
    Application.ScreenUpdating = False
    Set olApp = Outlook.Application
    Set objNS = olApp.GetNamespace("MAPI")
    Set olFolder = objNS.GetDefaultFolder(olFolderInbox)
    i = 2
    Columns("A:C").Clear
    On Error Resume Next
    For Each msg In olFolder.Items
        If msg.UnRead = True Then
            'msg.UnRead = False
            Cells(i, "A") = msg.SenderName
            Cells(i, "B") = msg.Subject
            Cells(i, "C") = msg.body
            i = i + 1
        End If
    Next
    Columns("A:C").WrapText = False
    Application.ScreenUpdating = True
    MsgBox "Fin"
End Sub

Prueba la macro y la vamos afinando.


Añade tu respuesta

Haz clic para o

Más respuestas relacionadas