Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

VB-Makro für Outlook gesucht - Suche Mails nach "Angezeigtem Namen" und Lösche alle bis auf die neuesten Anzahl n

Frage Entwicklung VB for Applications

Mitglied: volker01

volker01 (Level 1) - Jetzt verbinden

18.01.2015 um 17:22 Uhr, 1006 Aufrufe, 3 Kommentare, 1 Danke

Hallo,

ich erhalte täglich Mails mit Sicherungs-Logs und suche ein VB-Makro das folgendes können soll:

Suche - in einer pst in einem Ordner der Wahl - nach Mails.
Durchsuche diesen Ordner nach "Angezeigte Namen" und Lösche von jedem anzeigten Namen alle Mails – bis auf die n neuesten.

Absender- und Empfänger Adresse sind bei allen Mails gleich.
Die eingehenden Mails werden bei Eintreffen von einer Outlook Regel geprüft
und in eine andere PST mit Namen „KundenSicherungen“ dort in einen Unterordner mit Namen „_Alle“ verschoben.

Wer kann helfen?

Viele Grüße
Volker
Mitglied: colinardo
18.01.2015, aktualisiert um 18:31 Uhr
Hallo Volker,
lässt sich machen
Das sieht dann z.B. so aus ... (Kommentare findest du im Code)
01.
Sub keepNewestXMailsFromIndividualSenders() 
02.
    Dim folderMails As Folder, mail As MailItem, dic As Object, intKeep As Integer, itms As items, x As Integer, i As Integer, keys As Variant 
03.
    'Anzahl Mails die pro Sendername erhalten bleiben sollen 
04.
    intKeep = 5 
05.
    'Dictionary 
06.
    Set dic = CreateObject("Scripting.Dictionary") 
07.
    'Ordner aus dem die Mails verarbeitet werden 
08.
    Set folderMails = Application.Session.Stores("KundenSicherungen").GetRootFolder.Folders("_Alle") 
09.
     
10.
    'lade alle individuellen Sendernamen in ein Dictionary 
11.
    For Each mail In folderMails.items 
12.
        If Not dic.Exists(mail.SenderName) Then 
13.
            dic.add mail.SenderName, "" 
14.
        End If 
15.
    Next 
16.
     
17.
    'Iteriere über das Dictionary 
18.
    keys = dic.keys 
19.
    For i = 0 To dic.count - 1 
20.
        'Mails nach Sendername filtern 
21.
        Set itms = folderMails.items.Restrict("[Sendername] = '" & keys(i) & "'") 
22.
        If Not itms Is Nothing Then 
23.
            ' wenn die Anzahl der zu behaltenen Mails den angegebenen Wert übersteigt 
24.
            If itms.count > intKeep Then 
25.
                'Mails nach Datum absteigend sortieren 
26.
                itms.Sort "[ReceivedTime]", True 
27.
                'Überzählige Mails des Sendernamens löschen 
28.
                For x = itms.count To intKeep + 1 Step -1 
29.
                    itms.Item(x).Delete 
30.
                Next 
31.
            End If 
32.
        End If 
33.
    Next 
34.
    Set dic = Nothing 
35.
End Sub
Grüße Uwe
Falls der Beitrag gefällt, seid so nett und unterstützt mich durch eine kleine Spende / If you like my contribution please support me and donate
Bitte warten ..
Mitglied: volker01
18.01.2015 um 19:21 Uhr
Hallo colinardo,

bis restlos begeistert.
funktioniert wie gewünscht.

Viele Grüße
Volker

PS: Spende ist unterwegs.
Bitte warten ..
Mitglied: colinardo
18.01.2015, aktualisiert um 19:24 Uhr
Hallo Volker,
bis restlos begeistert.
funktioniert wie gewünscht.
freut mich
PS: Spende ist unterwegs.
Herzlichen Dank !!

Viel Erfolg weiterhin.
Grüße Uwe
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
gelöst Outlook 2016 - Keine Mails sichtbar (nach Suche schon) (19)

Frage von Hirschix3 zum Thema Microsoft Office ...

Outlook & Mail
gelöst Outlook 2013 alte Mails alle rot (2)

Frage von timi007 zum Thema Outlook & Mail ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Windows Systemdateien
gelöst NTFS und die Defragmentierung (29)

Frage von WinLiCLI zum Thema Windows Systemdateien ...