XL 2013 refresh de la liste des mail dans le dossier "boite de reception (Excel/outlook)

patricktoulon

XLDnaute Barbatruc
bonjour a tous
j'utilise un petit code de rien du tout pour lister les mail reçu dans la feuille
j'utilise outlook par excel
un truc bizarre c'est que si je n'ouvre pas outlook manuellement une fois avant ,je n'ai pas la mise a jour de la liste de mail quand je lance ce code
des idées ??

VB:
Sub LireMessagesDUnDossierEtLeDeplacerVersUnAutre()

    Dim appOutlK As Object, NS As Object, RéceptBox As Object, boite As Object, i As Long, F As Worksheet
    Set F = Sheets("MailsListe")
    F.UsedRange.Offset(1).ClearContents
  
    Set appOutlK = CreateObject("Outlook.Application")
    Set NS = appOutlK.GetNamespace("MAPI")
    'Set boite = NS.Folders(2)
    'ou
    Set boite = NS.Folders("monEmail@hotmail.fr")

    'Set RéceptBox = boite.Folders(2) 'dossier boite de reception
    'ou
    Set RéceptBox = boite.Folders("Boîte de réception")    'dossier boite de reception

    For i = 1 To RéceptBox.Items.Count
        With RéceptBox.Items(i):
            tbl = Array(i, DateValue(Format(.SentOn, "dd/MM/yyyy")), .SenderName, .SenderEmailAddress, .Subject)
        End With
        F.Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 5) = tbl
    Next

    Set NS = Nothing: Set OpenOutlk = Nothing

End Sub
 

MFoxy

XLDnaute Nouveau
Bonjour Patrick,

Hypothèse : Peut-être tout simplement car ta boîte de réception sur Outlook ne se met elle aussi à jour uniquement à son ouverture ?

Donc ta macro, si Outlook fermé n'importe que le contenu du Folder a jour jusqu'au moment de dernière fermeture.

Bat
 

zebanx

XLDnaute Accro
Bonjour Patricktoulon, Mfoxy, le forum

Déjà merci pour ce code @patricktoulon:)
J'espère ne pas me tromper mais ça n'a pas l'air de m'ouvrir outlook (2007) avec la petite modification suivante en ligne 11.

A tester.

Bien-xlment
zebanx

VB:
Sub LireMessagesDUnDossierEtLeDeplacerVersUnAutre()

    Dim appOutlK As Object, NS As Object, RéceptBox As Object, boite As Object, i As Long, F As Worksheet
    Set F = Sheets(1)
    F.UsedRange.Offset(1).ClearContents

    Set appOutlK = CreateObject("Outlook.Application")
    Set NS = appOutlK.GetNamespace("MAPI")
    'Set boite = NS.Folders(2)
    'ou
    Set boite = NS.GetDefaultFolder(olFolderInbox).Parent  '--ici modification
    'Set boite = NS.Folders("monEmail@hotmail.fr")

    'Set RéceptBox = boite.Folders(2) 'dossier boite de reception
    'ou
    Set RéceptBox = boite.Folders("Boîte de réception")    'dossier boite de reception
  
    For i = 1 To RéceptBox.Items.Count
        With RéceptBox.Items(i):
            tbl = Array(i, DateValue(Format(.SentOn, "dd/MM/yyyy")), .SenderName, .SenderEmailAddress, .Subject)
        End With
        F.Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 5) = tbl
    Next

    Set NS = Nothing: Set OpenOutlk = Nothing

End Sub
 

patricktoulon

XLDnaute Barbatruc
bonsoir zebanx
ton code fonctionne mais j'ai le même problème la liste de mails n'est pas a jour

hophophop!!! c'est bon autant pour moi ;)
en fait c'est bizarre il faut lancer 2 fois la sub pour qu'elle soit a jour
et la mienne aussi finalement
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
315 123
Messages
2 116 460
Membres
112 756
dernier inscrit
amar13