FORUM Tom's Hardware » Programmation » VB / VBA / VBS » Supprimer pièce jointe d'un fichier outlook en vbs
 

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

Il y a 335 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : Supprimer pièce jointe d'un fichier outlook en vbs
 
Plus d'informations

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

zeb
Profil : Modérateur libre
Plus d'informations

Je ne sais pas. (Je réponds sans pouvoir vérifier :()
Mais je te vois, ligne 55, faire un objMail.Delete()
Vérifie si tu ne peux pas faire la même chose ou un équivalent sur objMail.attachment.Items(x).Delete()


---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...

Aller à :
Ajouter une réponse
  FORUM Tom's Hardware » Programmation » VB / VBA / VBS » Supprimer pièce jointe d'un fichier outlook en vbs
 

Annonces Google
Publicité