Bonjour,

Suite à une demande spécifique, je récupère les mails dans une boîte Outlook afin de les traités avec leurs pièces jointes par la suite.
Sur mon poste, je n'ai aucun problème (Outlook 2010 avec seven.)
Mais sur d'autre poste, je rencontre une erreur (spécifié dans le code en commentaire, avec Outlook 2003 et XP)

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
 
        Dim Appli As Outlook.Application
        Dim Espace As Outlook.NameSpace
        Dim Lecture_Boite As Outlook.MAPIFolder
        Dim Mail_Boite As Outlook.MailItem
        Dim Piece_Jointe As Outlook.Attachment
        Dim MailInstance, MailNonDistribues, MailIncident As Outlook.MailItem
 
 
 
        Appli = CreateObject("Outlook.application")
        Espace = Appli.GetNamespace("MAPI")
        Lecture_Boite = Espace.GetDefaultFolder(OlDefaultFolders.olFolderInbox)
 
        'Pour chaque mail dans la boîte de réception Outlook
        '--> Le problème ce trouve ici, message d'erreur:
        '-Impossible d'effectuer un cast d'un objet COM de type 'System.__ComObject' en type d'interface 'Microsoft.Office.Interop.Outlook.MailItem'.
        '-Cette opération a échoué, car l'appel QueryInterface sur le composant COM pour l'interface avec l'IID '{00063034-0000-0000-C000-000000000046}' 
        '-a échoué en raison de l'erreur suivante : Cette interface n'est pas prise en charge (Exception de HRESULT : 0x80004002 (E_NOINTERFACE)).
 
        For Each Mail_Boite In Lecture_Boite.Items
            'Split sur le sujet du mail par " ".
            Dim tabsplit = Split(Mail_Boite.Subject, " ")
 
            'Si le sujet du mail contient Instance, NonDistribues ou incident
            For i = 0 To UBound(tabsplit)
                Select Case tabsplit(i)
                    Case "INSTANCE"
                        MailInstance = Mail_Boite
                    Case "NONDISTRIBUES"
                        MailNonDistribues = Mail_Boite
                    Case "INCIDENT"
                        MailIncident = Mail_Boite
                End Select
            Next
        Next
 
[...]
D'après quelques recherches, le problème viendrait à cause des deux Threads cloisonnés (mon programme et outlook?). Néanmoins, c'est aussi le cas sur mon poste et je n'ai pas de problème. Etes vous d'accord avec cette hypothèse ou auriez-vous une autre piste à m'apporter?
Merci d'avance.