2017-06-26 3 views
-1

Actuellement, j'essaie de traiter la ligne d'objet de chaque courriel reçu de Outlook. Toutes les lignes d'objet ont été répertoriées dans la colonne F. Je veux afficher toutes les lignes d'objet des e-mails (les doublons seront supprimés et une seule ligne sera conservée pour chaque conversation - les mails avec RE ou FW ont été enlevés de ceux-ci). Une nouvelle feuille de travail contiendra toutes les lignes d'objet de la boîte de réception (prises une seule fois après la suppression des doublons).Traiter l'objet de chaque courriel d'Outlook

code:

For Each oItem In objSourceFolder.Items 

    ThisWorkbook.Worksheets("Test 1 Mails").Range("A" & contor).Value = oItem.SentOn 
    ThisWorkbook.Worksheets("Test 1 Mails").Range("B" & contor).Value = oItem.CreationTime 
    ThisWorkbook.Worksheets("Test 1 Mails").Range("C" & contor).Value = oItem.ReceivedTime 
    ThisWorkbook.Worksheets("Test 1 Mails").Range("D" & contor).Value = oItem.SenderName 
    ThisWorkbook.Worksheets("Test 1 Mails").Range("E" & contor).Value = oItem.SenderEmailAddress 
    If (Left(oItem.Subject, 4) = "FW: ") Or (Left(oItem.Subject, 4) = "Fw: ") Or (Left(oItem.Subject, 4) = "RE: ") Or (Left(oItem.Subject, 4) = "Re: ") Then 
     oItem.Subject = Mid(oItem.Subject, 5) 
     oItem.Save 
     ThisWorkbook.Worksheets("Test 1 Mails").Range("F" & contor).Value = oItem.Subject 
     ThisWorkbook.Worksheets("Outlook report").Range("B" & contor).Value = oItem.Subject 
    Else 
     If Left(oItem.Subject, 5) = "FWD: " Then 
      oItem.Subject = Mid(oItem.Subject, 6) 
      ThisWorkbook.Worksheets("Test 1 Mails").Range("B" & contor).Value = oItem.Subject 
      ThisWorkbook.Worksheets("Outlook report").Range("B" & contor).Value = oItem.Subject 
      oItem.Save 
     End If 
    End If 
+1

Alors, quelle est votre question? Vous n'en avez pas demandé un. S'il vous plaît lire [demander]. Les questions demandant l'aide au débogage ("* pourquoi ce code ne fonctionne-t-il pas? *") Doivent inclure le comportement souhaité, un problème ou une erreur spécifique et le code le plus court nécessaire pour le reproduire dans la question elle-même. Les questions sans ** un énoncé de problème clair ** ne sont pas utiles aux autres lecteurs. Voir: Comment créer un [mcve]. –

+0

'1' À quel problème faites-vous face? '2' Pourquoi changez-vous la ligne d'objet Outlook? Pourquoi ne pas le stocker dans une variable, le nettoyer et ensuite écrire dans un fichier Excel? –

+0

@ georgian1990, j'aurais dû demander cela avant que j'ai d'abord répondu. avez-vous déjà toutes les informations de messagerie dans une feuille de calcul? Votre question est-elle une traduction d'une autre langue? – jsotola

Répondre

0

vous ne avez pas besoin de code pour extraire toutes les lignes d'objet uniques

  1. dans le dossier Outlook, mettez en surbrillance tous les e-mails que vous souhaitez traiter
  2. hit ctrl -c (copier)
  3. cliquez sur excel worksheet
  4. hit ctrl-v (paste)
  5. supprimer toutes les colonnes indésirables
  6. supprimer toutes les occurences de "fw:"
  7. supprimer toutes les occurences de "re:"
  8. sélectionnez la colonne Objet
  9. do "supprimer les doublons" commande (il est dans le " données » onglet ... en tout cas excel2016)

... fait

+0

Cette réponse est hors-sujet sur stackoverflow. – niton

+0

Je suis d'accord, c'est hors sujet, mais l'information initiale fournie n'est pas claire. – jsotola

+0

Mettez le commentaire dans la question pour que l'OP reçoive une notification automatique. S'il n'y a pas de notification automatique, préférez le nom d'utilisateur avec @. – niton