Supprimer pièce jointe d'un fichier outlook en vbs

Supprimer pièce jointe d'un fichier outlook en vbs - VB/VBA/VBS - Programmation

Marsh Posté le 17-06-2008 à 11:54:09    

bonjour,
 
Donc voici ce que je souhaiterai faire :  
 
recupérer les pièces jointes de mes message outlook ( Cela je l'effectue deja )
Ensuite je voudrai garder le message dans Outlook tout en supprimer le fichiers joint et en rajoutant un autre fichier qui me dit ou a été sauvegarder mon fichier joint auparavant
 
Voici mon code :
 

Code :
  1. cpt ="0"
  2. debut = Timer
  3. pst = InputBox ("Entrer le nom du fichier de dossiers personnels (pst)" & vbCrLf & _
  4. "Exemple : Dossiers personnels, Archive, Outlook Connector For Mdaemon", _
  5. "Sélection du dossiers personnels  - Service MCO" )
  6. dossier_outlook = InputBox ("Entrer le nom du dossier Outlook à extraire les fichiers joints" & vbCrLf & _
  7. "Exemple : Boîte de réception" & vbCrLf & "Seul les fichiers doc, docx, xls, xlsx, pdf seront extraits ", _
  8. "Sélection du dossier Outlook - Service MCO" )
  9. sous_dossier_outlook = InputBox ("Entrer le nom du sous-dossier Outlook à extraire les fichiers joints" & vbCrLf & _
  10. "Exemple : année 2007" & vbCrLf &  vbCrLf & "Si vous n'avez pas de sous-dossier, cliquer sur OK ou ANNULER", _
  11. "Sélection du sous-dossier Outlook - Service MCO" )
  12. Target_Folder = InputBox ("Entrer le chemin complet du répertoire de destination (il doit être créé préalablement)" & vbCrLf & "exemple : c:\mailbox\extract\", _
  13. "Choix du répertoire cible – Service MCO" )
  14. Set oOutLookObject = Createobject("Outlook.Application" )
  15. Set objFolder = oOutLookObject.GetNameSpace("MAPI" ).Folders(pst)
  16. Set objFolder = objFolder.Folders(dossier_outlook)
  17. If Not sous_dossier_outlook = False Then
  18. If Not sous_dossier_outlook = "" Then
  19.  Set objFolder = objFolder.Folders(sous_dossier_outlook)
  20. End If
  21. End IF
  22. Set objFSO = CreateObject("Scripting.FileSystemObject" )
  23. Set objLog = objFSO.CreateTextFile(Target_Folder & dossier_outlook & "_" &  sous_dossier_outlook & "_log.txt" )
  24. Set objShell = WScript.CreateObject("WScript.Shell" )
  25. objShell.Run "Net Stop Beep"
  26. objLog.WriteLine  "N°de fichier extrait |  Date de  reception | expéditeur  | Sujet du message | nom de la pièce jointe"
  27. objLog.WriteLine  "____________________________________________________________________________________________________"
  28. For Each objMail In objFolder.Items
  29.     If objMail.attachments.Count >0 Then
  30. On Error Resume Next
  31.         For i = 1 To objMail.attachments.Count
  32.              FichierJoint=""
  33.              Set FichierJoint = objMail.attachments.Item(i)
  34.  TypeFichier = Split(FichierJoint.DisplayName,"." )(1)
  35.   If TypeFichier = "doc" Or TypeFichier = "pdf" Or TypeFichier = "xls" Or TypeFichier = "docx" Or TypeFichier = "xlsx" Then
  36.    expediteur = Split(objMail.SenderName,"@" )(0)
  37.    mois = Split(Split(objMail.ReceivedTime," " )(0),"/" )(1)
  38.    annee = Split(Split(objMail.ReceivedTime," " )(0),"/" )(2)
  39.    FichierExtrait = annee & mois &"_"& expediteur &"_"& FichierJoint.DisplayName
  40.                FichierJoint.SaveAsFile Target_Folder & FichierExtrait
  41.    objLog.WriteLine  cpt & " | " & objMail.ReceivedTime & " | " & objMail.SenderName & " | " & objMail.Subject & " | " & FichierJoint.DisplayName
  42.    cpt = cpt + 1
  43.    objMail.Delete()
  44.   End If
  45. Next
  46.     End If
  47. Next
  48. If cpt > 0 Then
  49. Fin = Timer
  50. Duree = (Fix(Fin))-(Fix(Debut))
  51. MsgBox "Les fichiers joints ont été extrait" & vbCrLf & _
  52.  "Merci de Consulter le fichier " & vbCrLf & _
  53.  Target_Folder & dossier_outlook & "_" &  sous_dossier_outlook & "_log.txt" & vbCrLf &_
  54.  "Et de supprimer les messages concernés dans votre messagerie." & vbCrLf & _
  55.  "Durée d'exécution du script : " & Duree & " secondes" _
  56.  , vbOKOnly + vbInformation, "Extraction terminée - Service MCO"
  57. End If


 
Donc ici je sauvegarde la piece joint en la renomant et j'arrive a supprime le mail, mais je voudrai garder donc juste le corp du message
 
Merci d'avance

Reply

Marsh Posté le 17-06-2008 à 11:54:09   

Reply

Sujets relatifs:

Leave a Replay

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