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

Problème macro pour classer automatiquement un mail dans un dossier

jojo2006

XLDnaute Occasionnel
Bonjour,
Avant tout meilleurs vœux à tous pour cette nouvelle année.

Je fais appel au forum car j’ai un bug dans une macro qui affiche une fenêtre à chaque envoi de message pour ranger le mail envoyé dans un dossier spécifique. Cela évite d’aller chercher le mail dans élément envoyé et de le faire glisser dans un autre dossier.


La macro fonctionne parfaitement pour les envois de messages. Par contre, lorsqu’il s’agit d’une réunion à envoyer, j’ai le bug suivant :

Erreur d’exécution ‘438’ propriété ou méthode non gérée par cet objet


Visiblement le type SaveSentMessageFolder n’est pas pris en charge : j’ai trouvé cela pour l’objet MeetingItem :

Définition ou l'obtention de cette propriété n'a aucun effet notable. N'utilisez pas cette propriété.


Je cherche un moyen d’éviter ce bug avec une condition (si il s’agit d’un message pour une réunion alors ….). je voudrais tout de même arriver à classer le message de réunion dans un dossier (comme un mail normal).

Merci à tous pour votre aide si vous avez des idées.


MACRO
Code:
Private Sub Application_ItemSend(ByVal Item As Object, _
    Cancel As Boolean)
  Dim objNS As NameSpace
  Dim objFolder As MAPIFolder
  
  Set objNS = Application.GetNamespace("MAPI")
  Set objFolder = objNS.PickFolder
  If TypeName(objFolder) <> "Nothing" And _
     IsInDefaultStore(objFolder) Then
      Set Item.SaveSentMessageFolder ' ****  BUG ICI   *****
  End If
  Set objFolder = Nothing
  Set objNS = Nothing
End Sub


Public Function IsInDefaultStore(objOL As Object) As Boolean
  Dim objApp As Outlook.Application
  Dim objNS As Outlook.NameSpace
  Dim objInbox As Outlook.MAPIFolder
  On Error Resume Next
  Set objApp = CreateObject("Outlook.Application")
  Set objNS = objApp.GetNamespace("MAPI")
  Set objInbox = objNS.GetDefaultFolder(olFolderInbox)
  Select Case objOL.Class
    Case olFolder
      If objOL.StoreID = objInbox.StoreID Then
        IsInDefaultStore = True
      End If
    Case olAppointment, olContact, olDistributionList, _
         olJournal, olMail, olNote, olPost, olTask
      If objOL.Parent.StoreID = objInbox.StoreID Then
        IsInDefaultStore = True
      End If
    Case Else
      MsgBox "This function isn't designed to work " & _
             "with " & TypeName(objOL) & _
             " items and will return False.", _
             , "IsInDefaultStore"
  End Select
  Set objApp = Nothing
  Set objNS = Nothing
  Set objInbox = Nothing
End Function
 
Dernière édition:

jojo2006

XLDnaute Occasionnel
Re : Problème macro pour classer automatiquement un mail dans un dossier

Bonjour à tous,

Y a t il quelqu'un qui pourrait m'orienter comment détecter le cas où il s'agit d'une réponse pour une réunion ?

Je vous remercie d'avance

Cordialement,
Jo



Merci d'avance
 

Discussions similaires

Réponses
2
Affichages
657
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…