VBA Excel et Outlook

  • Initiateur de la discussion Initiateur de la discussion C@thy
  • 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 !

C@thy

XLDnaute Barbatruc
Bonjour le forum,

j'ai écrit une macro excel qui marche super bien et traite les e-mails reçus,
remplit un tableau excel et archive les e-mails traités dans un sous-répertoire
la question que je me pose est la suivante :
est-il possible sous outlook de faire l'équivalent d'une macro événementielle
(à chaque fois qu'un e-mail arrive)?
Cela éviterait à l'utilisateur d'avoir à ouvrir Excel pour lancer la macro.

Merci pour vos lumières.

Edit :

ceci, dans un module outlook, fonctionne, mais il faut lancer la macro...
Code:
Sub Application_NewMail()
    Dim myOlApp As New Outlook.Application
    Dim myNamespace As Outlook.NameSpace
    Dim myInbox As Outlook.MAPIFolder
    Dim myDestFolder As Outlook.MAPIFolder
    Dim myItems As Outlook.Items
    Dim myItem As Object
    Set myNamespace = myOlApp.GetNamespace("MAPI")
    Set myInbox = myNamespace.GetDefaultFolder(olFolderInbox)
    Set myItems = myInbox.Items
    Set myDestFolder = myInbox.Folders("Temp")
    Dim strName As String
    
    For Each myItem In myInbox.Items
        strName = myItem.EntryID
        myItem.SaveAs "C:\temp\" & strName & ".txt", olTXT
        myItem.Move myDestFolder
        Set myItem = myItems.GetNext
        
    Next myItem
End Sub
ceci ne fonctionne pas : (pour archiver le dernier reçu)
Code:
Set myItems = myInbox.Items(1)
Bises

C@thy
 
Dernière édition:
Re : VBA Excel et Outlook

J'ai trouvé!

Il faut la mettre dans le module ThisOutlookSession et rajouter Private devant Sub,

reste à trouver comment copier 1 seul message (celui qui vient d'arriver....)

Merci à vous... j'avance...

Bises

C@thy
 
Re : VBA Excel et Outlook

RESOLU

Ceci fonctionne :
Code:
Sub test()
    Dim myOlApp As New Outlook.Application
    Dim myNamespace As Outlook.NameSpace
    Dim myInbox As Outlook.MAPIFolder
    Dim myDestFolder As Outlook.MAPIFolder
    Dim myItems As Outlook.Items
  
    Set myNamespace = myOlApp.GetNamespace("MAPI")
    Set myInbox = myNamespace.GetDefaultFolder(olFolderInbox)
    Set myItems = myInbox.Items
      
    i = myInbox.Items.Count 'dernier message
    MsgBox myInbox.Items(i).Subject

End Sub

j'adapte avec mon traitement...

Bizzz

C@thy
 
- 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

Discussions similaires

Réponses
4
Affichages
672
  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
909
  • Question Question
Microsoft 365 VBA sur outlook
Réponses
14
Affichages
1 K
Réponses
1
Affichages
3 K
Compte Supprimé 979
C
Retour