Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Copie liste de messages Outlook dans excel

  • Initiateur de la discussion Initiateur de la discussion fafa93
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

F

fafa93

Guest
Bonjour
Question de mon chef (!!). Dans Outlook 2003 il a sa liste de message reçus et souhaite la récupérer dans Xl donc CTRL A puis CTRL C puis dans xl CTRL V ou collage spécial. Même résultat, Pb avec les dates on récupére des heures pour certains messages...
Date configurée en anglais
Est ce que quelqu'un a une petite idée ??

Merci et bonne journée
 
Re : Copie liste de messages Outlook dans excel

Pour repréciser ma demande j'ai copié ce qui se passe. Moi aussi j'ai la même chose avec date français :
1/Pourquoi certaines dates s'affichent bien et pas d'autres
2/ Et... comment faire pour avoirla date de réception à chaque fois ??

Merci...
mer. 21:07
mer. 19:03
mer. 16:53
mer. 16:45
mer. 16:19
mer. 14:49
mer. 14:47
mer. 14:44
mer. 11:33
mer. 11:28
mer. 0:03
30/08/2007
30/08/2007
28/08/2007
28/08/2007
 
Re : Copie liste de messages Outlook dans excel

Bonjour,

Pour éviter cela, essaies de faire un clic droit en changeant le format des colonnes reçu. Il faut choisir le format jeu. 13/09/2007.
Ensuite cela devrait fonctionné, mais la copie dans excel ne sera pas une date mais du texte.
Pour l'avoir en date en chiffre il faudra alors faire une macro pour supprimer les premiers caractères (le mieux est d'insérer une colonne et de faire \Données \convertir sur l'espace).
 
Re : Copie liste de messages Outlook dans excel

Bonjour

M'étant interessé à un problème similaire

(liste des mails envoyés avec Outlook Express)


je te propose de tester cette macro:
Code:
Option Explicit
'
' Listing 11.6. A procedure that reads Inbox data into a worksheet.
'
Sub ReadInboxData()'Sub LireMailsObjets()
    Dim ol As Outlook.Application
    Dim ns As NameSpace
    Dim folder As MAPIFolder
    Dim ws As Worksheet
    Dim i As Integer
    '
    ' Establish a connection and log on
    '
    Set ol = CreateObject("Outlook.Application")
    Set ns = ol.GetNamespace("MAPI")
    ns.Logon
    '
    ' Get the default Inbox folder and set Receive Mail worksheet
    '
    Set folder = ns.GetDefaultFolder(olFolderInbox)
'+++++++++++' modifs
    Set folder =ns.GetDefaultFolder(olFolderSentMail)
'+++++++++++
'+++++++++++ 'modifs
    Set ws = Worksheets("Emails reçus"")
'il faut qu'il y ait une fuille avec ce nom
'ou alors adapter avec le nom de ton choix
'++++++++++
    'Set ws = Worksheets("Receive Mail")
    '
    ' Run through each item in the Inbox
    '
    For i = 1 To folder.Items.Count
        With folder.Items(i)
            '
            ' Record the sender, subject, size,
            ' received time, and some of the body
            '
            ws.[A1].Offset(i, 0) = .SenderName
            ws.[A1].Offset(i, 1) = .SenderEmailAddress
            ws.[A1].Offset(i, 2) = .Subject
            ws.[A1].Offset(i, 3) = .Size
            ws.[A1].Offset(i, 4) = .ReceivedTime
            ws.[A1].Offset(i, 5) = Left(.Body, 100)
        End With
    Next 'i
    '
    ' Log off the session
    '
    ns.Logoff
    Set ol = Nothing
End Sub

C'était dans ce fil:voir ici


Edit: ou cette macro de Minick (issu du même fil)
Code:
Sub ListeSujet()
    Dim SessionMapi As MSMAPI.MapiSession
    Dim MessagesMapi As MSMAPI.MapiMessages
    Dim Cpt As Integer
    
    Set SessionMapi = New MSMAPI.MapiSession
    With SessionMapi
        .LogonUI = False
        .SignOn
    End With

    Set MessagesMapi = New MSMAPI.MapiMessages
    With MessagesMapi
        .SessionID = SessionMapi.SessionID
        .Fetch
        
        For Cpt = 0 To .MsgCount - 1
            .MsgIndex = Cpt
            On Error Resume Next
                Feuil1.Range("A" & Feuil1.Range("A65536").End(xlUp).Row + 1) = .MsgSubject
            On Error GoTo 0
        Next
    End With

    SessionMapi.SignOff
End Sub

A+

Staple
 
Dernière édition:
Re : Copie liste de messages Outlook dans excel

Bonjour le fil,

>Staple

Pour avoir répondu à un fil de fafa hier, je peux te dire que ses connaissances en vba sont, je cite "Archinulles".

Alors, pourrais-tu préciser quelles références il faut activer pour les macros que tu proposes, sinon, ça plante! (et c'est le cas chez moi) et j'aimerais bien faire des test aussi sur ce sujet.

A+, bonne journée
 
Re : Copie liste de messages Outlook dans excel

Bonjour Luki

C'était dans ce fil:voir ici


Dans ce fil, il y avait plus de détails.

Désolé de n'avoir pas pris le temps de m'apercevoir que le demandeur
était novice en VBA.


J'ai posté un lien vers mon post (déjà ancien) car problème similaire.
(Depuis j'ai installé Outlook 2000)


Pour récapituler
Les macros proposés ne fonctionnent qu'avec Outlook
(pas avec Outlook Express)

  • Références à activer:
  • Microsoft Outlook Object 9.0 Library (si Office 2000)

  • Dans le fil cité: Minick indique d'activer
  • Pour la macro Sub ListeSujet()
Il faut que tu ajoutes la reference MSMAPI que tu devrais trouver dans
c:\windows\system32\msmapi32.ocx

A+


Staple
 
Re : Copie liste de messages Outlook dans excel

Oups !

J'ai mis l'affichage de XLD sur un 2ème écran, plus petit, et j'ai zappé le lien 😱.

merci pour l'info, mais même avec "Microsoft Outlook Object 9.0 Library", j'ai un problème. Je suis le lien et je reviens si ça ne marche pas.

A+
 
Re : Copie liste de messages Outlook dans excel

Re

Cette macro fonctionne chez moi

(XL 2000/W98SE)

Références activées:
Microsoft Outlook Object 9.0 Library

Cette macro importe les éléments suivants d'un mail
-La propriété Non lu
-Objet
-Taille
-Les 100 caractères à gauche du corps du mail (?)

(On peut rajouter d'autres éléments)



Code:
Option Explicit

Sub Import_Mails_NonLus()
    Dim ol As Outlook.Application
    Dim ns As NameSpace
    Dim folder As MAPIFolder
    Dim ws As Worksheet
    Dim i As Integer
   
    Set ol = CreateObject("Outlook.Application")
    Set ns = ol.GetNamespace("MAPI")
    ns.Logon

    Set folder = ns.GetDefaultFolder(olFolderInbox)
 
    Set ws = Worksheets("Emails recus")

    For i = 1 To folder.Items.Count
        With folder.Items(i)
        'liste les messages non lus
            ws.[A1].Offset(i, 0) = .UnRead
            ws.[A1].Offset(i, 1) = .Subject
            ws.[A1].Offset(i, 2) = .Size
            ws.[A1].Offset(i, 3) = Left(.Body, 100)
        End With
    Next i
    ns.Logoff
    Set ol = Nothing
End Sub
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…