IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Outlook Discussion :

Commande .receivedtime [OL-2010]


Sujet :

VBA Outlook

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2014
    Messages : 23
    Points : 17
    Points
    17
    Par défaut Commande .receivedtime
    Bonjour,

    Voici mon problème, je souhaite calculer le délai entre la date de réception d'un mail et la date à laquelle on y répond.

    Problème : il me met systèmatiquement la même date pour la réception du mail et la réponse du mail

    Avez vous une solution à mon problème ??

    Merci par avance.

    Voci le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Sub comptage_ream_pro()
    Dim objOutlook As Object, objnSpace As Object, objFolder As MAPIFolder
    Dim doss_ream As Integer, b As Integer, date_recep As Date, date_rep As Date, doss_ream_sem As Integer, delai_moy As Double, delai As Double, i As Integer
     
    Set objOutlook = CreateObject("Outlook.Application")
    Set objnSpace = objOutlook.GetNamespace("MAPI")
     
    Set objFolder = objnSpace.Folders("860BG S26 Engagements PRO").Folders("Boîte de réception").Folders("RENEGO")
    doss_ream = objFolder.Items.Count
     
    b = 2
    For i = 1 To doss_ream
        With objFolder.Items(i)
       date_recep = Format(.receivedtime, "dd/mm/yyyy")
       date_rep = Format(.creationtime, "dd/mm/yyyy")
       delai = date_rep - date_recep
             If date_recep >= Premier_Jour_Semaine_Der And date_recep <= Dernier_Jour_Semaine_Der Then
                Sheets("Dossiers Ream").Activate
                Cells(1, 1) = "Date de réception "
                Cells(1, 2) = "Date de réponse "
                Cells(1, 3) = "Delai de réponse"
                Cells(b, 1) = date_recep
                Cells(b, 2) = date_rep
                Cells(b, 3) = delai
                b = b + 1
            End If
        End With

  2. #2
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Bjr,
    a priori la réponse et le mail d'origine sont deux CHOSES DIFFERENTES;

    donc la date de réception c'est dans le mail reçu (tu peux avoir dans celui-ci une indication proche de la date de réponse avec : LastModificationTime )
    et la date de réponse dans le mail envoyé

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2014
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    Merci de ta réponse

    Je ne suis pas sure d'avoir bien compris, en fait il faut que je change ".receivedtime" par ".LastModificationTime" ?

  4. #4
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Voici un exemple (adapté de GAITE Jean-Michel ) mais je n'ai pas testé



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
     
    dim Mi as outlook.mailitem
     
    For Each item In objFolder.Items
     
    if item.class = olMail then 
    set Mi = Item
     
           If Mi.Sender.Name <> curuser Then
              Err.Clear
              naction = Mi.PropertyAccessor.getProperty("http://schemas.microsoft.com/mapi/proptag/0x10810003") ': numéro d'action (261=Repondu, 262=Transféré)
              daction = Mi.PropertyAccessor.getProperty("http://schemas.microsoft.com/mapi/proptag/0x10820040") ': date de l'action
              If Err.Number <> 0 Then
                 Debug.Print Mi.TimeSent; Mi.Sender.Name, "Non traité", Mi.Subject
              Else
                 If naction = 261 Then
                    taction = "Répondu le "
                 ElseIf naction = 262 Then
                    taction = "Transféré le "
                 Else
                    taction = "inconnu "
                 End If
                 Debug.Print Mi.TimeSent; Mi.Sender.Name, taction; daction, DateDiff("d", Mi.TimeSent, daction), Mi.Subject
                 nombre = nombre + 1
                 somme = somme + DateDiff("d", Mi.TimeSent, daction)
                 If DateDiff("d", Mi.TimeSent, daction) > 10 Then
                    depasse = depasse + 1
                 End If
              End If
           End If
    End if
        Next

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2014
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    Merci Oliv, le code fonctionne parfaitement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Interception des commandes in et out
    Par KDD dans le forum x86 16-bits
    Réponses: 13
    Dernier message: 18/12/2002, 16h55
  2. [TP]besoin d'aide pour commandes inconnues
    Par Upal dans le forum Turbo Pascal
    Réponses: 15
    Dernier message: 03/10/2002, 10h48
  3. Réponses: 3
    Dernier message: 02/09/2002, 18h49
  4. Réponses: 2
    Dernier message: 11/08/2002, 21h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo