Partage
  • Partager sur Facebook
  • Partager sur Twitter

[VBA OL-2007] Erreur après déplacement mail

    5 septembre 2017 à 15:02:21

    Bonjour,

    Je crée actuellement une macro qui déplace automatiquement mes mails lorsque je donne une catégorie.
    Ex: Je met la catégorie "pub" et le message se déplace dans le dossier "pub".

    La macro fonctionne presque correctement ... Lorsque mon message est déplacé, j'ai le message d'erreur suivant : "Impossible d'effectuer l'opération, l'objet ayant été supprimé".

    Seriez-vous où se situe mon erreur ?

    Merci d'avance 
    Public WithEvents AM As MailItem
     
    'Lancement lors de la modification des propriétés d'un mail.
    '"Name" est un string et correspond au nom de la propriété.
     
    Private Sub AM_PropertyChange(ByVal Name As String)
     
        'Je définis les variables.
        Dim CategorieName As String
     
        Select Case Name
            Case "Categories" 'Si "Name" contient "Categories", je traite le mail. Sinon je laisse tomber.
                If AM.Categories <> "" Then 'Si je donne une catégorie au mail je continue le traitement.
                    CategorieName = AM.Categories
                    AM.Categories = CategorieName
                    MoveItems (CategorieName)
                End If
        End Select
    End Sub
     
    'Lancement lors de la sélection d'un objet.
    '"Item" est un objet et correspond au type d'objet sélectionné.
     
    Private Sub Application_ItemLoad(ByVal Item As Object)
        If Item.Class = olMail Then 'Si "Item" est un mail, je récupère le mail dans la variable AM. Sinon je laisse tomber.
            Set AM = Item
        Else
            Exit Sub
        End If
    End Sub
     
    Private Sub MoveItems(CategorieName)
     
        'Je définis les variables.
        Dim myOlapp As New Outlook.Application
        Dim myNameSpace As Outlook.NameSpace
        Dim myFolder As Outlook.Folder
        Dim myDestFolder As Outlook.Folder
     
        On Error GoTo MsgErr
        Set myNameSpace = myOlapp.GetNamespace("MAPI")
        Set myFolder = myNameSpace.GetDefaultFolder(olFolderInbox)
        Set myDestFolder = myFolder.Folders(CategorieName) 'Je définis le répertoire de destination.
        AM.Move myDestFolder 'Je déplace le mail
     
        Set myOlapp = Nothing
        Set myNameSpace = Nothing
        Set myFolder = Nothing
        Set myDestFolder = Nothing
     
    MsgErr:
        If Err.Number = -2147221233 Then
            MsgBox "Le dossier de destination n'existe pas !", vbCritical, "Erreur !"
        Else
            MsgBox "An unexpected Error has occurred." _
             & vbCrLf & "Error Number: " & Err.Number _
             & vbCrLf & "Error Description: " & Err.Description _
             , vbCritical, "Error!"
        End If
     
        Set myOlapp = Nothing
        Set myNameSpace = Nothing
        Set myFolder = Nothing
        Set myDestFolder = Nothing
     
        Exit Sub
     
    End Sub
    • Partager sur Facebook
    • Partager sur Twitter

    [VBA OL-2007] Erreur après déplacement mail

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown