Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1800to1804
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Email mit Betreff ...in Ordner speichern

Email mit Betreff ...in Ordner speichern
06.01.2021 20:07:19
flyingwordhero
Hallo,
ich möchte gerne meine E-Mails archivieren. Hierzu habe ich mir ein Makro aus dem Forum kopiert und in Outlook eingefügt bzw. für meine Zwecke angepasst. Funktioniert soweit. Nun möchte ich dieses Makro soweit ergänzen das nicht nur die letzte Email, welche ich markiert habe, im jeweiligen Ordner archiviert wird. Ich habe zwar eine "Schleife" im Makro, diese scheint aber nicht richtig zu funktionieren.
Kann mir jemand helfen und den Code soweit erweitern, das alle Emails, welche ich in meinem Postfach markiert habe im von mir vorgegebenen Ordner archiviert werden?
Vielen Dank für eure Hilfe.
Gruß flyingwordhero
Sub Emails_speichern()
Dim strPath As String
Dim strText As String
Dim objMail As MailItem
On Error Resume Next
'Pfad zu meinem Ordner
strPath = "D:\DSUsers\Username\Allgemeine Infos & Dokumente\Test"
'Schleife
For Each objMail In Outlook.ActiveExplorer.Selection
'Mails als gelesen markieren
If objMail.UnRead Then
objMail.UnRead = False
End If
'Mail abspeichern
If TypeOf Application.ActiveWindow Is Outlook.Explorer Then
Set obj = Application.ActiveWindow
Set obj = obj.Selection(1)
Else
Set objInspector = ActiveInspector
objInspector.Activate
If objInspector.IsWordMail Then
Set obj = Application.ActiveInspector.CurrentItem
End If
End If
'Sonderzeichen aus Betreff entfernen
With obj
strText = Replace(.Subject, "/", "_")
strText = Replace(strText, "!", "")
strText = Replace(strText, ".", "_")
strText = Replace(strText, "\", "_")
strText = Replace(strText, ":", "_")
strText = Replace(strText, "(", "")
strText = Replace(strText, ")", "")
strText = Replace(strText, """", "")
'Speicherpfad und Dateiformat vorgeben
.SaveAs strPath & "\" & Format(.ReceivedTime, "YYYY-MM-DD_hh-mm") & "_" & strText & ".msg",  _
olMSG
End With
'Mails löschen
objMail.Delete
Next objMail
End Sub

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Email mit Betreff ...in Ordner speichern
06.01.2021 20:16:54
mumpel
Bei der Schleife musst Du rückwärts gehen. Also bei der letzten Mail anfangen und beim Zähler eins abziehen. Z.B. (auf Excel bezogen): For i = lngLastCell To 1 Step -1
AW: Email mit Betreff ...in Ordner speichern
06.01.2021 20:17:16
Nepumuk
Hallo,
und warum stellst du eine Outlook-Frage in einem Excelforum? Frag hier:
Outlook Forum
Gruß
Nepumuk
AW: Email mit Betreff ...in Ordner speichern
06.01.2021 20:21:22
mumpel
Ein "Schleifenproblem" kann man auch hier (er)klären. ;)
AW: Email mit Betreff ...in Ordner speichern
06.01.2021 20:23:31
Nepumuk
Hallo mumpel,
wie willst du eine For Each - Schleife rückwärts laufen lassen?
Gruß
Nepumuk
AW: Email mit Betreff ...in Ordner speichern
06.01.2021 20:26:28
mumpel
Einfach mit For-Next arbeiten anstatt mit For-Each.
Anzeige
AW: Email mit Betreff ...in Ordner speichern
06.01.2021 20:42:18
flyingwordhero
Hallo mumpel,
leider funktioniert es mit For-Next nicht... trotzdem herzlichen Dank für deine Hilfe.
AW: Email mit Betreff ...in Ordner speichern
06.01.2021 20:44:23
mumpel
Muss aber funktionieren. Natürlich müsste man dafür Deinen Beispielcode anpassen. Das kann ich aber erst am Freitag testen, wenn ich wieder Zeit habe.
AW: Email mit Betreff ...in Ordner speichern
06.01.2021 20:50:24
flyingwordhero
Dann schon mal vielen Dank im Voraus für deine Unterstützung :)
AW: Email mit Betreff ...in Ordner speichern
07.01.2021 10:32:56
mumpel
Ich habe mal schnell was zusammengestellt. Eventuell musst Du in "DeleteSpecialChar" bei "strSpecialChar" die Zeichen entfernen die Du im Namen behalten möchtest.
Option Private Module
Option Explicit

Sub Emails_speichern()

         Dim strPath         As String
         Dim strText         As String
                  
         Dim lngMailCount    As Outlook.Selection
         
         Dim lngSavedCount   As Long
         

         
         strPath = "D:\DSUsers\Username\Allgemeine Infos & Dokumente\Test"
         
         
        Set lngMailCount = Outlook.ActiveExplorer.Selection
         
         For lngSavedCount = lngMailCount.Count To 1 Step -1
             
             With lngMailCount.Item(lngSavedCount)
           
                  If .UnRead Then .UnRead = False

                  strText = DeleteSpecialChar(.Subject)
 
                 .SaveAs strPath & "\" & Format(.ReceivedTime, "YYYY-MM-DD_hh-mm") & _
                         "_" & strText & ".msg", olMsg

                 .Delete
             End With
             
         Next lngSavedCount

End Sub
         

Public Function DeleteSpecialChar(ByVal strText As String) As String

  Dim lngLenText        As Long
  Dim strEndResult      As String
  Const strSpecialChar  As String = "-._,:;#+ß'*?=)(/&%$§!~\}][{"


  For lngLenText = 1 To Len(strSpecialChar)
       strText = Replace(strText, Mid(strSpecialChar, lngLenText, 1), "")
  Next lngLenText

  DeleteSpecialChar = strText

End Function

VBA/HTML-CodeConverter, AddIn für Excel 2002-2019 (32-bit) und Excel 365 (32-bit Desktop-Version)
In VBA geschrieben von Lukas Mosimann. Projektbetreuung: René Holtz


Code erstellt und getestet in Excel 365 32-bit Desktopversion
Codedarstellung mit VBAHTML 12.6.0 erstellt.


Anzeige
AW: Email mit Betreff ...in Ordner speichern
11.01.2021 18:57:41
flyingwordhero
Hallo mumpel,
so viel Danke, wie ich gerne sagen möchte, kann ich gar nicht schreiben. Das Makro funktioniert 1a.
Vielen lieben Dank für deine Hilfe!
VG
AW: Email mit Betreff ...in Ordner speichern
06.01.2021 20:22:41
flyingwordhero
Hallo Nepumuk,
entschuldige, dass ich meine Frage im falschen Forum gestellt habe war keine Absicht.
Besten Dank für den Link.

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige