Thema Datum  Von Nutzer Rating
Antwort
13.09.2018 13:29:49 Erebos
NotSolved
13.09.2018 18:29:19 Ulrich
NotSolved
19.09.2018 15:26:26 Gast27729
NotSolved
Blau Mails nach Regel automatisch speichern?
19.09.2018 16:30:08 Ulrich
NotSolved
19.09.2018 19:44:39 Erebos
NotSolved
20.09.2018 00:54:52 Ulrich
NotSolved

Ansicht des Beitrags:
Von:
Ulrich
Datum:
19.09.2018 16:30:08
Views:
301
Rating: Antwort:
  Ja
Thema:
Mails nach Regel automatisch speichern?

Hallo,

ganz allgemein: alle deine Makros haben Parameter:

Sub Makroname(Parameterliste)
    '...
End Sub

Makros, die Parameter haben, werden nicht in der Liste mit Makros, die man mit ALT+F8 aufruft, aufgeführt.

 

Bei dir kommt noch etwas spezielles dazu: du benutzt Events. Das sind Makros, die in bestimmten Situationen automatisch ausgeführt werden.

zB. nehme ich an, dass das makro

Private Sub Application_Startup()

automatisch beim Start von Outlook ausgeführt wird.

Und wegen dieser Codezeile

Private WithEvents Items As Outlook.Items

nehme ich an, dass folgendes Makro:

Private Sub Items_ItemAdd(ByVal Item As Object)

ausgeführt wird, wenn der Items-Collection ein weiteres Item hinzugefügt wird.

 Du müsstest also Outllook neu starten und eine E-Mail in den bestimmten Ordner verschieben / kopieren, damit dein Makro ausgeführt wird.

Events zu benutzen, davon rate ich dir ab, da du in meinen Augen zu wenig Ahnung hast, um selbst herauszufinden, ob deine Makros nun ausgeführt werden, oder nicht. Das ist bei der Arbeit mit Events elementar um testen zu können.

 

Sorry, ich dachte bei dir funktioniert alles und es soll lediglich ein anderer Ordner benutzt werden.

Daher schlage ich vor, du bleibst bei deiner Idee, das Mkaro von Hand mit ALT+F8 aufzurufen. Ich kopiere dir deinen bisherigen Code mal dahingehend um:

Public Sub saveMyMails()
    Dim Ns As Outlook.Namespace
    Dim objMail As Object
    Dim dtDate As Date
    Dim sPath As String
    Dim sName As String
    Dim sExt As String
    
    sPath = "d:\mails"
    sExt = ".msg"
    
    Set Ns = Application.GetNamespace("MAPI")
    For Each objMail In Ns.GetDefaultFolder(olFolderInbox).Folders("Dein Unterordner").Items
        If TypeOf objMail Is Outlook.MailItem Then
        
            sName = objMail.Subject
            ReplaceCharsForFileName sName, "_"
            dtDate = objMail.ReceivedTime
            sName = Format(dtDate, "yyyymmdd", vbUseSystemDayOfWeek, _
                    vbUseSystem) & Format(dtDate, "-hhnnss", _
                    vbUseSystemDayOfWeek, vbUseSystem) & "-" & sName & sExt
        
            objMail.SaveAs sPath & sName, olSaveAsMsg
        
        End If
    Next
End Sub


Private Sub ReplaceCharsForFileName(sName As String, _
  sChr As String _
)
  sName = Replace(sName, "/", sChr)
  sName = Replace(sName, "", sChr)
  sName = Replace(sName, ":", sChr)
  sName = Replace(sName, "?", sChr)
  sName = Replace(sName, Chr(34), sChr)
  sName = Replace(sName, "<", sChr)
  sName = Replace(sName, ">", sChr)
  sName = Replace(sName, "|", sChr)
End Sub

Testen kann ich den Code nicht, da ich Outlook nicht installiert habe.

Grüße, Ulrich


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
13.09.2018 13:29:49 Erebos
NotSolved
13.09.2018 18:29:19 Ulrich
NotSolved
19.09.2018 15:26:26 Gast27729
NotSolved
Blau Mails nach Regel automatisch speichern?
19.09.2018 16:30:08 Ulrich
NotSolved
19.09.2018 19:44:39 Erebos
NotSolved
20.09.2018 00:54:52 Ulrich
NotSolved