No me busca la fecha del e-mail

Esto ya viene de atrás la persona que me respondió lo entenderá, os paso un código haber si alguien me dice porque no me consigue encontrar el mail, los dos primeros pasos me los hace bien, es decir busca el remitente y busca el nombre pero la fecha no, no se si tengo que declarar una variable (la veréis comentada) o es una cuestión del formato de las fechas, la intención es que cuando de al botón me busque la fecha actual. Bueno gracias de antemano

Private Sub NombreBoton_Click()
    Dim OlApp As Outlook.Application
    Dim Inbox As Outlook.MAPIFolder
    Dim InboxItems As Outlook.Items         

  Dim mail As Object
    Dim Adjunto As Outlook.Attachment
    Dim fExcel As String
    'Dim fecha
    Dim savefolder As String
    Set OlApp = CreateObject("Outlook.Application")
    Set Inbox = OlApp.GetNamespace("Mapi").GetDefaultFolder(olFolderInbox)
    Set InboxItems = Inbox.Items
    'fecha = Date
    savefolder = "T:\"
    For Each mail In InboxItems
        'If mail.UnRead Then
        If mail.SenderEmailAddress = "[email protected]" And mail.Subject = "xxxxxxxx" And Format(mail.ReceivedTime, "dd/mm/yyyy") = Date Then
                If mail.Attachments.Count > 0 Then
                     For Each Adjunto In mail.Attachments
                         'Descargas el adjunto en la misma carpeta del Access. Si quieres otra carpeta, cámbialo
                         Adjunto.SaveAsFile (savefolder & "xxxxxxx.xls")
                         GoTo salir
                         'Adjunto.SaveAsFile savefolder
                        Next
                        'mail.UnRead = False
                   End If
                End If

1 respuesta

Respuesta
1

Prueba con

And Format(mail.ReceivedTime, "mm/dd/yyyy") = Date Then

O si no, habrá que recortar el Received time para que coja solo la fecha, por ejemplo con:

And CDate(Left(mail.ReceivedTime, 10)) = Date Then

Ya me dices.

Un saludo.


¡Gracias! de lujo pruebo y te digo, muchas gracias por la rapidez.

Hola de nuevo.

He probado las dos opciones y me da error cuando llega a la fecha.

la última opción entiendo que extrae desde la izquierda 10 posiciones de la fecha.

Mis dudas son si tengo que declarar la variable de la fecha o la dejo comentada, y la otra es que no se si será tema de formatos porque la fecha en el correo aparece algo así como "mar 22-03-2017 0:58 " si realmente es esto lo que esta por detrás empezaría a extraer por la m, me puse aprobar pero no se como decirle que extraiga desde el medio 5;10.

Uffff no se si no me estaré haciendo pajas mentales.

Bueno si se te ocurre otra solución aquí estoy.

gracias

Prueba esta modificación al código:

    Dim oApp As Outlook.Application
    Dim myNameSpace As Outlook.NameSpace
    Dim myFolder As Outlook.Folder
    Dim myItem As Outlook.MailItem
    Dim oItems As Outlook.Items
    Dim Adjunto As Outlook.Attachment
    Dim fExcel As String
    Dim savefolder As String
    Set oApp = CreateObject("Outlook.Application")
    Set myNameSpace = oApp.GetNamespace("MAPI")
    Set myFolder = myNameSpace.GetDefaultFolder(olFolderInbox)
    Set oItems = myFolder.Items.Restrict("[SenderEmailAddress] = '[email protected]' AND [ReceivedTime]>'" & Date & "'")
    Set myItem = oItems.GetFirst
    iTotCorreos = oItems.Count
    savefolder = "T:\"
    For i = 1 To oItems.Count
        If myItem.Subject = "xxxxxxxx" And myItem.Attachments.Count > 0 Then
            For Each Adjunto In myItem.Attachments
            'Descargas el adjunto en la misma carpeta del Access. Si quieres otra carpeta, cámbialo
            Adjunto.SaveAsFile (savefolder & "xxxxxxx.xls")
            GoTo salir
            'Adjunto.SaveAsFile savefolder
            Next
        End If
    Next i
'Y aquí el resto de tu código

¡Gracias! 

Ok por la tarde lo pruebo y te comento.

Gracias de nuevo.

Hola me sale un error de compilación en la línea del "Dim fexcel as string" y me lo pone en rojo, ¿hay algo que no reconozca?

No tiene sentido que te marque error en esa linea, pues en el código que usas y pones en tu pregunta lo tienes, y entiendo que antes te funcionaba.

Además, es una simple declaración de una variable de texto, no tendría que dar problemas.

Si no usas esa variable, borra esa declaración.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas