Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1916to1920
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

Markierter Mail Kat. zuweisen

Markierter Mail Kat. zuweisen
25.01.2023 08:40:09
Claus
Hallo,
ich habe untenstehenden Code um eine E-Mail zu erstellen als Antwort.
Nun möchte ich die markierte E-Mail im Outlook, auf die ich auch antworte, einer Kategorie zuordnen.
Ich habe in der Recherche bereits den .Categories = "Name" Code gefunden allerdings markiert dieses nur die Mail die ich als reply aus Excel erstelle (Entwurf bzw. gesendete Nachricht).
Kann mir jemand helfen und mir sagen welchen Code ich nehmen muss bzw. wo dieser stehen sollte damit ich die markierte E-Mail im Outlook zuordnen kann?
Als nächsten Punkt würde ich die markierte Mail auch gerne als "erledigt" (grüner Haken) in Outlook markieren, ist dies auch per VBA möglich?
LineReplyMail:
    
    ''_______________Send REPLY MAIL WITH SIGNATURE______________
    Dim OutlookApp As Object
    Dim OutlookMail As Object
    
    On Error GoTo LineKeineMail
    Set OutlookApp = CreateObject("Outlook.Application")
    Set OutlookMail = OutlookApp.ActiveExplorer.Selection.Item(1)
    '~~> Get MailItem.GetConversation method (Outlook)
' https://learn.microsoft.com/en-us/office/vba/api/outlook.mailitem.getconversation
    Dim OutlookConversation As Object
    Set OutlookConversation = OutlookMail.GetConversation
    On Error GoTo LineKeineMail
    '~~> Conversation.GetTable method (Outlook)
' https://learn.microsoft.com/en-us/office/vba/api/outlook.conversation.gettable
    Dim OutlookTable As Object
    Set OutlookTable = OutlookConversation.GetTable
    
    On Error GoTo LineKeineMail
    '~~> Obtains a 2D array from the Table.
' https://learn.microsoft.com/en-us/office/vba/api/outlook.table.getarray
    Dim OutlookAr As Variant
    OutlookAr = OutlookTable.GetArray(OutlookTable.GetRowCount)
    
    On Error GoTo LineKeineMail
    Dim OutlookReplyToThisMail As Object
    Set OutlookReplyToThisMail = OutlookMail.Session.GetItemFromID(OutlookAr(UBound(OutlookAr), 0))
    On Error GoTo LineKeineMail
    With OutlookReplyToThisMail.Reply
        .Categories = "Name"
        .SentOnBehalfOfName = "meine@emailadresse.de"
        .To = sKMail
        .CC = sAEMail
        .BodyFormat = 2
        .HTMLBody = sText & .HTMLBody
        .Display
    End With
    
    GoTo LineCreateTimestamp
    ''^^^^^^^^^_______________Send REPLY MAIL WITH SIGNATURE______________^^^^^^^^^

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Markierter Mail Kat. zuweisen
25.01.2023 08:56:58
MCO
Guten Morgen!
Ich hab hier mal was für Dich, solte in irgendeinem Modul von Outlook stehen:
Sub Einzel_Rekl_Mail_reservieren()
    Dim myOlExp As Outlook.Explorer
    Dim myOlSel As Outlook.Selection
    Dim myaccount As store
    
    Set myaccount = Application.GetNamespace("MAPI").DefaultStore
    Set myOlExp = ActiveExplorer
    Set myOlSel = myOlExp.Selection
    
    With myOlSel.Item(1)
          .FlagStatus = olFlagMarked
          .FlagIcon = 5
         .Categories =myaccount.DisplayName
         .Save
    End With
End Sub
Probiers mal aus!
Gruß, MCO
Anzeige
AW: Markierter Mail Kat. zuweisen
25.01.2023 11:18:20
Claus
Danke für Eure Hilfe bei mir sieht es jetzt final so aus und funktioniert (weiterer Code kann die Nachwelt aus Thread Erstellung entnehmen)
    '_______________Send REPLY MAIL WITH SIGNATURE______________
    Dim OutlookApp As Object
    Dim OutlookMail As Object
    
    On Error GoTo LineKeineMail
    Set OutlookApp = CreateObject("Outlook.Application")
    Set OutlookMail = OutlookApp.ActiveExplorer.Selection.Item(1)
    OutlookMail.Categories = sUserSetFlag         'schreibt mir vorher den User aus M365 in eine variable und benennt diesen so um das es der Kategorie entspricht
    OutlookMail.FlagStatus = 1
    OutlookMail.Save
On Error GoTo LineKeineMail
    '~~> Get MailItem.GetConversation method (Outlook)
' https://learn.microsoft.com/en-us/office/vba/api/outlook.mailitem.getconversation
    Dim OutlookConversation As Object
    Set OutlookConversation = OutlookMail.GetConversation

Anzeige
AW: Markierter Mail Kat. zuweisen
25.01.2023 09:23:34
Fennek
Hallo,
die markierte Mail mit VBA auswählen geht mit
dim EML as Mailitem
Set EML = activeexplorer.selection(1)
Eine Kategorie zuordnen:
dim Tx as String
Tx = "Rote Kategorie"
EML.Categories = Tx
mfg
AW: Markierter Mail Kat. zuweisen
25.01.2023 09:49:37
Claus
Hallo Fennek,
ich habe es wie folgt eingefügt, aber es passiert nicht, ist die Stelle im Code richtig oder muss das vor / hinter einen anderen Code?
    '-- Send Email >--
    
LineReplyMail:
    
     
    ''_______________Send REPLY MAIL WITH SIGNATURE______________
    Dim OutlookApp As Object
    Dim OutlookMail As Object
    Dim EML As MailItem
    Dim Tx As String
    
    On Error GoTo LineKeineMail
    Set OutlookApp = CreateObject("Outlook.Application")
    Set OutlookMail = OutlookApp.ActiveExplorer.Selection.Item(1)
    '~~> Get MailItem.GetConversation method (Outlook)
' https://learn.microsoft.com/en-us/office/vba/api/outlook.mailitem.getconversation
    Dim OutlookConversation As Object
    Set OutlookConversation = OutlookMail.GetConversation
    On Error GoTo LineKeineMail
    '~~> Conversation.GetTable method (Outlook)
' https://learn.microsoft.com/en-us/office/vba/api/outlook.conversation.gettable
    Dim OutlookTable As Object
    Set OutlookTable = OutlookConversation.GetTable
    
    On Error GoTo LineKeineMail
    '~~> Obtains a 2D array from the Table.
' https://learn.microsoft.com/en-us/office/vba/api/outlook.table.getarray
    Dim OutlookAr As Variant
    OutlookAr = OutlookTable.GetArray(OutlookTable.GetRowCount)
    
    On Error GoTo LineKeineMail
    Dim OutlookReplyToThisMail As Object
    Set OutlookReplyToThisMail = OutlookMail.Session.GetItemFromID(OutlookAr(UBound(OutlookAr), 0))
    
    Set EML = ActiveExplorer.Selection(1)
    Tx = "Name"
    EML.Categories = Tx
    On Error GoTo LineKeineMail
    With OutlookReplyToThisMail.Reply
        .SentOnBehalfOfName = "meine@emailadresse.de"
        .To = sKMail
        .CC = sAEMail
        .BodyFormat = 2
        .HTMLBody = sText & .HTMLBody
        .Display
    End With
    
    GoTo LineCreateTimestamp
    ''^^^^^^^^^_______________Send REPLY MAIL WITH SIGNATURE______________^^^^^^^^^

Anzeige
AW: Markierter Mail Kat. zuweisen
25.01.2023 09:57:26
Claus
Ach ich sehe grade, den ActiveExplorer.SelectionItem hatte ich oben bereits drin, ich änder das nochmal.
AW: Markierter Mail Kat. zuweisen
25.01.2023 10:03:51
Fennek
Hallo,
jeder hat seinen Programmierstil, meiner ist möglichst kompakt und anders als deiner.
Für kurzem wollte ich die Auto-Signatur löschen und habe dafür diesen Code gefunden / entwickelt:
Dim aWD As Word.Application, Doc As Word.Document, Bkmrk As Word.Bookmark
Set Doc = EML.GetInspector.WordEditor
Set aWD = Doc.Application
'Remove Signature
    If Doc.Bookmarks.Exists("_MailAutoSig") Then
        Set Bkmrk = Doc.Bookmarks("_MailAutoSig")
        
        If Not Bkmrk Is Nothing Then
            Bkmrk.Select
            Doc.Windows(1).Selection.Delete
        End If
    End If
Deine Aufgabenstellung würde ich anderst angehen, aber mich in deinen Code einzuarbeiten und zu modifizieren, möchte ich nicht.
mfg
Anzeige
AW: Markierter Mail Kat. zuweisen
25.01.2023 10:05:01
Claus
Alles klar, dann suche ich mal weiter, danke.
AW: Signature: Beispielcode
25.01.2023 10:22:08
Fennek
Sub Signature_setzen()
Dim EML As MailItem
Dim aWD As Word.Application, Doc As Word.Document, Bkmrk As Word.Bookmark
Set EML = CreateItem(olMailItem)
EML.BodyFormat = olFormatHTML
EML.Display
Set Doc = EML.GetInspector.WordEditor
Set aWD = Doc.Application
'Add or Replace Signature
    If Doc.Bookmarks.Exists("_MailAutoSig") Then
        Set Bkmrk = Doc.Bookmarks("_MailAutoSig")
        
        Bkmrk.Range.Text = "qwe"
    
    End If
End Sub
Anstelle von "qwe" kann jeder belibige Text, also auch "" für löschen, stehen.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige