Prendre informations de mails reçues sur une boite de réception spécifiques

Bonjours à tous, j'essaye grâce au vba et au "mode" regex de prendre des informations particulière dans mes mails pour voir directement dans un fichier à part les informations que je cherche j'ai réussi cet étape sauf que les mails que je reçois utilisant le regex sont pas dans une sous branches de ma boite de réception ( comme vous pouvez le voire dans ma capture d'écran, il s'agit de la branche Dalet de ma boite de réception) j'ai utilisé Private Sub Application_NewMail() (et Dim myfol As Outlook.Folder

Set myfol = onamespace.GetDefaultFolder(olFolderInbox).Folders("Dalet") ) , pour prendre les informations de mes mails dans Dalet dès que je reçois un mail sur ma boite mail principale savez-vous s'il est possible de changez ce que j'ai écris (Private Sub Application_NewMail()) pour prendre automatiquement les informations que je souhaite dans ma boite de réception spécifique(Dalet) dés que je reçois un mail dans cet même boite de réception ou s'il existe un autre moyen pour pouvoir faire sa ?

capture

Bonjour,

Vous donnez peu de précisions sur votre code. S'agit-il d'un code implémenté dans Excel ou Outlook ??

De toute façon, la procédure événementielle "Private Sub Application_NewMail() " est inadéquate dans votre cas puisque vous utilisez des règles Outlook pour ventiler la réception de vos mails.

Il faut utiliser la procédure événementielle "ItemAdd" avec une variable associée par exemple "mails_reçus".

A cet effet, il faut :

1- déclarer dans un module objet les événements correspondant à cette procédure : "Public WithEvents mails_reçus As Outlook.Items"

2- initialiser la variable mails_reçus en la rattachant à votre dossier :

"Set mails_reçus = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Folders("Dalet").Items"

3- utiliser alors la procédure événementielle : "Private Sub mails_reçus_ItemAdd(ByVal Item As Object)" dans le module objet où vous avez déclaré vos événements.

Merci pour ta réponse thev,

Il s'agit effectivement d'un code implémenté sur Outlook, je ne comprends pas vraiment comment tu implémente la procédure Items.add, mon code est plutôt gros mais je vais te montrer les parties susceptible de t'intéresser pour que tu puisses comprendre et si possible essayer de m'aider, comme tu peux le voir j'ai éssayer de remplacer Private Sub Application_NewMail() par ce que tu m'as dit , la première capture te permet de voire sous quel nom je met ce qu'il y a écrit dans mon mail sachant que n(4) est une information prise dans mon mail (l'id de l'émetteur)

capture1 capture2

Bonsoir,

Pour initialiser la variable relative à la procédure événementielle : "Private Sub mails_reçus_ItemAdd(ByVal Item As Object)" , il faut la placer dans une procédure. Le mieux est de la placer dans la procédure d'ouverture d'Outlook.

ci-dessous exemple de code :

Option Explicit

Public WithEvents mails_reçus As Outlook.Items

Private Sub Application_Startup()

    Set mails_reçus = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Folders("Dalet").Items

End Sub

Private Sub mails_reçus_ItemAdd(ByVal Item As Object)
    Dim email As MailItem
    Dim objet As String

    Set email = Item
    objet = email.Subject

End Sub

Pour chaque mail ventilé dans le dossier "Dalet" de la Boîte de réception, la procédure événementielle relative à la variable "mails_reçus" sera exécutée, puisque cette variable est rattachée à ce dossier.

thank's it work !

Rechercher des sujets similaires à "prendre informations mails recues boite reception specifiques"