erreur Move/Delete sur element ouvert

erreur Move/Delete sur element ouvert - VB/VBA/VBS - Programmation

Marsh Posté le 07-08-2007 à 11:47:05    

Bonjour,
 
J'ai un soucis avec une macro qui doit faire cela : Lors de la fermeture d'un nouveau mail, je propose à l'utilisateur d'archiver le mail vers un dossier. Le truc c'est que le mail doit être déplacé mais il ne peut pas parcequ'il est ouvert.
 
J'ai pensé à créér une copie de ce mail, et de déplacer la copie, mais je veux supprimer le mail recu, pour qu'il n'y ai pas de doublon. Encore une fois, impossible de supprimer le mail ouvert. Tout ca se passe dans le objet_BeforeClose, il me faudrait un équivalent de AfterClose pour régler mon prôblème, mais qui n'existe malheuresement pas...
 
Si vous avez des idées ca m'aiderait pas mal, je vous c/c le code :
 
Dim WithEvents myInspectors As Outlook.Inspectors
Dim WithEvents myMail As Outlook.MailItem
 
Private Sub Application_Startup()
On Error Resume Next
Set myInspectors = ThisOutlookSession.Inspectors
On Error GoTo 0
End Sub
 
Private Sub myInspectors_NewInspector(ByVal Insp As Inspector)
If Insp.CurrentItem.Class = olMail Then
    If Insp.CurrentItem.UnRead = True Then
        Set myMail = Insp.CurrentItem
        'MsgBox "Nouveau Mail"
    'Else
        'MsgBox "Vieux Mail"
    End If
End If
End Sub
 
Private Sub myMail_Close(Cancel As Boolean)
        Dim myCopiedItem As Outlook.MailItem
 
        If MsgBox("Voulez-vous archiver ce message ?", vbYesNo + vbQuestion, "Voulez-vous Archiver ?" ) = vbYes Then
        Dim oDossier As MAPIFolder
        'Set oNS = Application.GetNamespace("MAPI" )
        Set oDossier = Application.GetNamespace("MAPI" ).PickFolder
 
        If Not oDossier Is Nothing Then
          Set myCopiedItem = myMail.Copy
          myCopiedItem.Move oDossier
          myMail.Delete
        End If
        Set oDossier = Nothing
    End If
End Sub
 
Cette version créé une copie du mail et le déplace, jusque la OK, mais le myMail.Delete pose probleme.
Pour tester l'idée premiere, il faut remplacer  
          Set myCopiedItem = myMail.Copy
          myCopiedItem.Move oDossier
          myMail.Delete
par
          myMail.Move oDossier
 
Voila l'erreur qu'il me donne :
http://eslftp.free.fr/erreur.jpg
 
Donc le move et delete ne sont pas accéssible sur l'événement close, si vous avez une idée alternative... je suis preneur !
 

Reply

Marsh Posté le 07-08-2007 à 11:47:05   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed