Anzeige
Archiv - Navigation
1936to1940
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
Zugriff auf FMB Postfach Ordner
19.07.2023 11:09:51
Markus
Hallo zusammen,

mit dem angehängten VBA Sub speichere ich die letzten beiden E-Mails aus meinem Outlook Ordner "Gesendete Elemente". Das funktioniert auch.
Nun sollen allerdings nicht die letzten beiden Mails aus dem privaten Postfach sondern aus dem "Sent Items" Ordner eines eingebundenen FMBs gespeichert werden.
Könnt ihr mir helfen, wie ich dafür den Code anpassen muss?



Sub GesendeteEMailsSpeichern()

Dim OutlookApp As Outlook.Application
Dim Namespace As Outlook.Namespace
Dim DateiNummer As Integer
Dim Folder As Outlook.Folder
Dim MailItem As Outlook.MailItem
Dim i As Integer
Dim SaveFolder As String
Dim Temp_Pfad As String

'Temp-Datei-Pfad festlegen
Temp_Pfad = Pfad_Temp_Ordner_global & "\Temp_Ordnerpfad.txt"

'Datei öffnen und Ordner-Pfad auslesen
DateiNummer = FreeFile
Open Temp_Pfad For Input As #DateiNummer
Line Input #DateiNummer, SaveFolder

'Datei schließen
Close #DateiNummer

'Namespace erstellen
Set Namespace = GetNamespace("MAPI")

'Gesendete Elemente Ordner festlegen
Set Folder = Namespace.GetDefaultFolder(olFolderSentMail)

'Sonderzeichen entfernen und die letzten beiden E-Mails speichern
For i = Folder.Items.Count To Folder.Items.Count - 1 Step -1
If i 1 Then Exit For 'Falls weniger als 2 E-Mails vorhanden sind
Set MailItem = Folder.Items(i)
MailItem.Subject = Replace(MailItem.Subject, "\", "_")
MailItem.Subject = Replace(MailItem.Subject, "/", "_")
MailItem.Subject = Replace(MailItem.Subject, ":", "_")
MailItem.Subject = Replace(MailItem.Subject, "*", "_")
MailItem.Subject = Replace(MailItem.Subject, "?", "_")
MailItem.Subject = Replace(MailItem.Subject, " ", "_")
MailItem.Subject = Replace(MailItem.Subject, "", "_")
MailItem.Subject = Replace(MailItem.Subject, ">", "_")
MailItem.Subject = Replace(MailItem.Subject, "|", "_")

'E-Mail speichern und Ressource freigeben
MailItem.SaveAs SaveFolder & "\" & MailItem.Subject & ".msg", olMSG
Set MailItem = Nothing
Next i

'Ressourcenfreigabe
Set Folder = Nothing
Set Namespace = Nothing
Set OutlookApp = Nothing

End Sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zugriff auf FMB Postfach Ordner
19.07.2023 21:01:58
mumpel
Was ist "FMB"?

AW: Zugriff auf FMB Postfach Ordner
19.07.2023 21:08:26
Markus
Sorry, FMB steht für Funktionsmailbox

AW: Zugriff auf FMB Postfach Ordner
20.07.2023 09:16:28
Markus
Hallo Yal,
so wie ich das verstehe, ist die SendUsingAccount Eigenschaft lediglich für die Auswahl des Accounts für eine zu sendende Mail. Das ist allerdings nicht die Funktion die ich benötige. In meinem Fall möchte ich ja lediglich auf den Gesendet-Ordner des Funktionspostfachs zugreifen.

Anzeige
AW: Zugriff auf FMB Postfach Ordner
20.07.2023 11:40:35
Yal
Hallo Markus,

sorry falsche Pferd.

Probiere:
Sub SentItem_zählen()
'Unter Anbindung ("Extras", "Verweise..") von "Microsoft Outlook 16.0 Object Library"
Dim O As Namespace
Dim S As Store
Dim F As Outlook.Folder
 
    Set O = Outlook.GetNamespace("MAPI")
    For Each S In O.Stores
        Debug.Print E.DisplayName
        Set F = S.GetDefaultFolder(olFolderSentMail)
        Debug.Print F.Items.Count
    Next
End Sub
Es ist ein Test-Code. Den solltest Du im Schritt-Modus (F8) beim geöffneten Lokalfenster laufen lassen und ein bischen neugierieg sein. Auch das Objekt-Katalog solltest Du anscheuen. Vergiss nicht die Bibliothek "Microsoft Outlook 16 Object" (oder bei dir einen höheren Zahl) anzubinden.
Wenn Du ein Begriff nicht verstehst, einaml drauf klicken und Strg+F1 um die Online-Hilfe anzuschauen.

VG
Yal

Anzeige
AW: Zugriff auf FMB Postfach Ordner
20.07.2023 15:18:57
Markus
Hey Yal,
dein Testcode war sehr hilfreich, danke für deine Hilfe!
Mit deiner Unterstützung habe ich eine passende Lösung gefunden, die so ausschaut:

Sub GesendeteEMailsSpeichern()

Dim OutlookApp As Outlook.Application
Dim Namespace As Outlook.Namespace
Dim DateiNummer As Integer
Dim Folder As Outlook.Folder
Dim objItems As Items
Dim MailItem As Outlook.MailItem
Dim i As Integer
Dim SaveFolder As String
Dim Temp_Pfad As String
Dim Store As Store

'Ordnerpfad, in dem die E-Mails gespeichert werden sollen
Temp_Pfad = Pfad_Temp_Ordner_global & "\Temp_Ordnerpfad.txt"

'Datei öffnen und Ordner-Pfad auslesen
DateiNummer = FreeFile
Open Temp_Pfad For Input As #DateiNummer
Line Input #DateiNummer, SaveFolder

'Datei schließen
Close #DateiNummer

Set Namespace = Outlook.GetNamespace("MAPI")
For Each Store In Namespace.Stores
    If Store.DisplayName = "XXX" Then
        Set Folder = Store.GetDefaultFolder(olFolderSentMail)
        Set objItems = Folder.Items
    End If
Next

'Die letzten beiden E-Mails speichern (Sonderzeichen aus Betreff entfernen, um Fehler bei der Verwendung dessen als Dateiname zu vermeiden)
For i = 1 To 2 Step 1
    If Folder.Items.Count  2 Then Exit For 'Falls weniger als 2 E-Mails vorhanden sind, Schleife verlassen
        objItems.Sort "[SentOn]", True
        Set MailItem = objItems(i)
        With MailItem
            .Subject = Replace(MailItem.Subject, "\", "_")
            .Subject = Replace(MailItem.Subject, "/", "_")
            .Subject = Replace(MailItem.Subject, ":", "_")
            .Subject = Replace(MailItem.Subject, "*", "_")
            .Subject = Replace(MailItem.Subject, "?", "_")
            .Subject = Replace(MailItem.Subject, " ", "_")
            .Subject = Replace(MailItem.Subject, "", "_")
            .Subject = Replace(MailItem.Subject, ">", "_")
            .Subject = Replace(MailItem.Subject, "|", "_")
        End With
        
        'E-Mail speichern und Ressource freigeben
        MailItem.SaveAs SaveFolder & "\" & MailItem.Subject & ".msg", olMSG
        Set MailItem = Nothing
Next i

'Ressourcenfreigabe
Set Folder = Nothing
Set Namespace = Nothing
Set OutlookApp = Nothing

End Sub

Anzeige
Vielen Dank für die Rückmeldung
20.07.2023 22:56:21
Yal
Die vollständige Lösung wird hilfreich, falls jemand auf diese Frage stosst.

VG
Yal

17 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige