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

Outlook Discussion :

Décompte du nombre de conversations dans Outlook.


Sujet :

Outlook

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 125
    Points : 80
    Points
    80
    Par défaut Décompte du nombre de conversations dans Outlook.
    Bonjour,

    Une demande précédente m'a permis de connaître le code qui permet de décompter le nombre de mails dans un répertoire de Outlook par date de réception à partir de Access.

    Voici le code pour rappel : (Pas oublier d'ajouter la référence Microsoft Outlook 16.0 Object Library dans Access)
    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
    34
    35
    36
    37
    38
    Option Compare Database
    Option Explicit
     
        'Variables et Objets de l'application Outlook
        Dim objOutlook As Outlook.Application
        Dim objNameSpace As Outlook.NameSpace
        Dim objRecipient As Outlook.Recipient
        Dim objMailFolderInbox As Outlook.MAPIFolder
        Dim strFiltre As String
        Dim lngInboxNow As Long
     
    Sub OutlookMails()
     
    On Error Resume Next
     
        'Ouvrir Outlook
        Set objOutlook = New Outlook.Application
     
        'Créer le NameSpace
        Set objNameSpace = objOutlook.GetNamespace("MAPI")
        objNameSpace.SendAndReceive (True)
     
        'Créer le récipient
        Set objRecipient = objNameSpace.CreateRecipient("Nom du compte Outlook")
        objRecipient.Resolve
     
        'Recherche du Folder Inbox
        If objRecipient.Resolved Then
            Set objMailFolderInbox = objNameSpace.GetSharedDefaultFolder(objRecipient, olFolderInbox)
        End If
     
        'Filtres de restriction sur la réception à la date du jour
        strFiltre = "[Receivedtime] <= '" & Format(Date, "dd/mm/yyyy") & "'"
     
        'Nombre de Mails dans le Folder Inbox à la date du jour
        lngInboxNow = objMailFolderInbox.Items.Restrict(strFiltre).Count
     
    End Sub
    J'aimerai à présent dénombrer le nombre de conversations et non pas de mails présent dans un répertoire. Pouvez-vous m'aider ?
    Exemple : Si il y a 3 conversations de 5 mails dans Inbox, je voudrais que le code me renvoi la valeur 3 et pas 15.

    Philippe

  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
    Bonjour,

    Comme cela ca doit faire le job

    Les Emails sans sujet étant regroupés comme 1 seule conversation.

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    Sub Conversation_in_Folder()
    '---------------------------------------------------------------------------------------
    ' Procedure : Conversations_in_Folder
    ' Author    : Oliv
    ' Date      : 08/04/2019
    ' Purpose   :
    '---------------------------------------------------------------------------------------
    '
     
        Dim oFolder As Outlook.Folder
        Dim criteria
        Dim oTable As Table
        Dim i, oRow, r, arr
        'Si on connait le nom
        '        Set oFolder = Application.Session.GetDefaultFolder(olFolderInbox).Folders("Tests")
     
        'si on veut choisir
     
        Set oFolder = Application.Session.PickFolder
        criteria = "[MessageClass]='IPM.Note' or [MessageClass]='IPM.Post'"
        Set oTable = oFolder.GetTable(criteria, olUserItems)
        With oTable.Columns
            .add ("ReceivedTime")
            .add ("Senton")
            .add ("Size")
            .add ("To")
            .add ("Cc")
            .add ("Bcc")
            .add ("Categories")
            .add ("ConversationTopic")
            .add ("ReceivedByName")
            .add ("SenderName")
            .add ("SenderEmailAddress")
            .add ("Unread")
            .add ("http://schemas.microsoft.com/mapi/proptag/0x0E1B000B")    'PR_HASATTACH
            .add ("http://schemas.microsoft.com/mapi/proptag/0x1000001F")    '="Body"
     
        End With
        'MsgBox oTable.GetRowCount
     
     
        'Enumerate the table using test for EndOfTable
     
        Dim mondico As Object
        Set mondico = CreateObject("Scripting.Dictionary")
     
        'pour parcourir la table champs par champs
        oTable.MoveToStart
        Do Until (oTable.EndOfTable)
            On Error Resume Next
            Set oRow = oTable.GetNextRow()
            ' MsgBox oRow("ConversationTopic")
            If Not mondico.Exists(oRow("ConversationTopic")) Then mondico.add oRow("ConversationTopic"), oRow("ConversationTopic")
     
     
        Loop
     
        MsgBox mondico.count & vbCr & " sur " & oTable.GetRowCount & " messages", vbOKOnly, "Nombre de conversations"
     
     
    End Sub

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 125
    Points : 80
    Points
    80
    Par défaut
    Merci beaucoup. Cela a l'air de fonctionner.

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

Discussions similaires

  1. Décompte du nombre de conversations dans Outlook.
    Par DPhBxl dans le forum VBA Outlook
    Réponses: 5
    Dernier message: 14/06/2019, 14h53
  2. [OL-2007] Une macro pour compter le nombre de pièces jointes dans outlook 2007
    Par lafifine dans le forum VBA Outlook
    Réponses: 4
    Dernier message: 19/11/2013, 12h17
  3. Nombre maximal de destinataire dans outlook 2007
    Par sofien dans le forum Outlook
    Réponses: 2
    Dernier message: 07/12/2007, 08h15
  4. recherche du nombre d'occurences dans une table
    Par berry dans le forum Requêtes
    Réponses: 3
    Dernier message: 09/01/2004, 20h03
  5. piece jointe à mettre dans outlook
    Par Tierisa dans le forum VBA Access
    Réponses: 52
    Dernier message: 21/10/2003, 15h32

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