Shared Mailbox Macro

Résolu
thefloflo64 Messages postés 663 Date d'inscription   Statut Membre Dernière intervention   -  
thefloflo64 Messages postés 663 Date d'inscription   Statut Membre Dernière intervention   -
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 1981 Date d'inscription   Statut Membre Dernière intervention   711
 
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 663 Date d'inscription   Statut Membre Dernière intervention   93
 
Bonjour,

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


Cordialement,
Florian
0
thev Messages postés 1981 Date d'inscription   Statut Membre Dernière intervention   711
 
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 663 Date d'inscription   Statut Membre Dernière intervention   93
 
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