Shared Mailbox Macro

Résolu/Fermé
thefloflo64 Messages postés 650 Date d'inscription jeudi 13 novembre 2014 Statut Membre Dernière intervention 28 novembre 2017 - 30 mars 2017 à 11:45
thefloflo64 Messages postés 650 Date d'inscription jeudi 13 novembre 2014 Statut Membre Dernière intervention 28 novembre 2017 - 4 avril 2017 à 09:21
Bonjour,

Je cherche actuellement a exécuter une macro sur une boite mail partagée.
Actuellement ma macro ressemble à cela :

Private WithEvents myOlItems  As Outlook.Items

Private Sub Application_Startup()
Dim olApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Set olApp = Outlook.Application
Set objNS = olApp.GetNamespace("MAPI")
Set myOlItems = objNS.GetDefaultFolder(olFolderInbox).Items
End Sub

Private Sub myOlItems_ItemAdd(ByVal item As Object)

On Error GoTo ErrorHandler

Dim Msg As Outlook.MailItem

If TypeName(item) = "MailItem" Then
Set Msg = item
If Msg.Subject = "Subject Content" Then
MsgBox Msg.Subject
MsgBox Msg.Body
End If
End If

ProgramExit:
Exit Sub
ErrorHandler:
MsgBox Err.Number & " - " & Err.Description
Resume ProgramExit
End Sub


Elle permet de vérifier dès la réception d'un mail si celui-ci contient tel sujet et si c'est le cas affiche une popup.
Mais elle ne s'exécute uniquement sur la boite mail par défaut et je ne peux pas définir la boite mail partagée comme boite par défaut (au cas où il y aurait la question :) ).

Est-ce que quelqu'un aurait une idée ?


Cordialement,
Florian
A voir également:

2 réponses

thev Messages postés 1851 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 15 avril 2024 681
3 avril 2017 à 19:33
Bonjour,

La procédure correspondant à la gestion de l'événement de réception du mail ne figure pas dans ton code
"Private Sub myOlItems_ItemAdd(ByVal item As Object)"


Private WithEvents myOlItems As Outlook.Items
Private Sub Application_Startup()

Dim olApp As Outlook.Application
Dim Comptes_messagerie()
Dim Dossier As Outlook.MAPIFolder

'définition application
Set olApp = Outlook.Application
'définition Comptes de messagerie
Comptes_messagerie = Array("NAME")
'balayage Dossiers Outlook
For Each Dossier In olApp.GetNamespace("MAPI").Folders
If UBound(Filter(Comptes_messagerie, Dossier.Name)) > -1 Then
'assignation évenements de la boîte de réception du Compte de messagerie
Set myOlItems = Dossier.Folders("Boîte de réception").Items
Next Dossier

End Sub

Private Sub myOlItems_ItemAdd(ByVal item As Object)

On Error GoTo ErrorHandler

Dim Msg As Outlook.MailItem

If TypeName(item) = "MailItem" Then
Set Msg = item
If Msg.Subject = "Subject Content" Then
MsgBox Msg.Subject
MsgBox Msg.Body
End If
End If

ProgramExit:
Exit Sub
ErrorHandler:
MsgBox Err.Number & " - " & Err.Description
Resume ProgramExit
End Sub


--
 
1
thefloflo64 Messages postés 650 Date d'inscription jeudi 13 novembre 2014 Statut Membre Dernière intervention 28 novembre 2017 93
4 avril 2017 à 09:21
Bonjour,

Ha c'est juste PARFAIT :)
Merci de ton aide


Cordialement,
Florian
0
thev Messages postés 1851 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 15 avril 2024 681
Modifié le 30 mars 2017 à 17:04
Bonjour,

Essayer ce code avec l'hypothèse que la boîte de réception de votre compte partagé s'appelle "Boîte de Réception" (éventuellement à remplacer par "Inbox" )

Private WithEvents myOlItems As Outlook.Items
Private Sub Application_Startup()

Dim olApp As Outlook.Application
Dim Comptes_messagerie()
Dim Dossier As Outlook.MAPIFolder

'définition application
Set olApp = Outlook.Application
'définition Comptes de messagerie
Comptes_messagerie = Array("votre compte partagé")
'balayage Dossiers Outlook
For Each Dossier In olApp.GetNamespace("MAPI").Folders
If UBound(Filter(Comptes_messagerie, Dossier.Name)) > -1 Then
'assignation évenements de la boîte de réception du Compte de messagerie
Set myOlItems = Dossier.Folders("Boîte de réception").Items
End If
Next Dossier

End Sub


--
 
0
thefloflo64 Messages postés 650 Date d'inscription jeudi 13 novembre 2014 Statut Membre Dernière intervention 28 novembre 2017 93
Modifié le 3 avril 2017 à 12:05
Bonjour,

Tout d'abord merci de ta réponse.
Voici donc mes retours :)

La macro ne fonctionne pas sur la boite mail partagée.
J'ai appliqué le code suivant :

Private WithEvents myOlItems  As Outlook.Items
Private Sub Application_Startup()

Dim olApp As Outlook.Application
Dim Comptes_messagerie()
Dim Dossier As Outlook.MAPIFolder

'définition application
Set olApp = Outlook.Application
'définition Comptes de messagerie
Comptes_messagerie = Array("NAME")
'balayage Dossiers Outlook
For Each Dossier In olApp.GetNamespace("MAPI").Folders
If UBound(Filter(Comptes_messagerie, Dossier.Name)) > -1 Then
'assignation évenements de la boîte de réception du Compte de messagerie
Set myOlItems = Dossier.Folders("Boîte de réception").Items

Dim Msg As Outlook.MailItem

If TypeName(item) = "MailItem" Then
Set Msg = item
If Msg.Subject = "Subject Content" Then
MsgBox Msg.Subject
MsgBox Msg.Body
End If
End If

End If
Next Dossier

End Sub


Basé donc sur celui que tu m'avais proposé en rajoutant la popup.
Néanmoins je n'ai aucun retour dans le cas de la réception d'un mail.
J'ai tenté de changer le nom de la boite mail partagé en rajoutant le "@test.com".
Sans résultat.

As-tu une nouvelle idée ?


Cordialement,
Florian
0