Bonjour,
En VBA Excel, j'ai développé un traitement qui affiche dans un classeur Excel (Feuil1) la liste
des mails de ma boîte de réception Outlook lorsque j'appel la procédure InfoSelection (voir le code ci-dessous).
Lorsque j'ouvre mon fichier Excel et que l'application Outlook est déjà ouverte sur mon poste de travail, mon traitement
fonctionne très bien et affiche correctement les mails dans mon classeur Excel. Par contre, si je ferme l'application Outlook et que
j'ouvre à nouveau l'application Outlook tout en restant mon fichier Excel ouvert sur mon poste, je ne suis plus capable d'afficher les mails.
Je crois que le problème doit venir que Excel pointe toujours vers l'ancienne session Outlook et que le lien ne se fait pas avec la nouvelle session.
Pouvez-vous m'aider svp.
Merci.
Sub InfoSelection()
On Error Resume Next
Dim myOlApp As New Outlook.Application
Dim myOlExp As Outlook.Explorer
Dim myNameSpace As Outlook.Namespace
Dim myInbox As Outlook.Folder
Dim myItems As Outlook.Items
Dim Exp As Explorer
Dim Sel As Selection
Dim Itm As Object
Dim Rep As String
Dim X As Integer
Set myNameSpace = myOlApp.GetNamespace("MAPI")
Set myInbox = myNameSpace.GetDefaultFolder(olFolderInbox)
Set myItems = myInbox.Items
Set Exp = ActiveExplorer
Set Sel = Exp.Selection
If Sel.Count = 0 Then
MsgBox "Il n'y a aucun courriel de sélectionné dans Outlook", vbInformation, "Information"
End If
X = 1
For Each Itm In Sel
If Itm.Class = OLmail Then
Feuil1.Cells(X, 5) = Itm.ReceivedTime
Feuil1.Cells(X, 10) = Itm.Sender
Feuil1.Cells(X, 28) = Itm.To
Feuil1.Cells(X, 46) = Itm.Subject
X = X + 1
End If
Next Itm
Set Itm = Nothing
Set Sel = Nothing
Set Exp = Nothing
End Sub