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

  • Initiateur de la discussion Initiateur de la discussion jojo2006
  • 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 !

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:
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
 
- 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
461
Réponses
2
Affichages
809
Réponses
6
Affichages
739
Retour