Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  VBasic / vb.net / vbs / wsh
  Outlook 2007 - Über VBA E-Mails Kategorien zuweisen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Outlook 2007 - Über VBA E-Mails Kategorien zuweisen (3813 mal gelesen)
Heino Casper
Mitglied
CAD/PLM Administrator


Sehen Sie sich das Profil von Heino Casper an!   Senden Sie eine Private Message an Heino Casper  Schreiben Sie einen Gästebucheintrag für Heino Casper

Beiträge: 483
Registriert: 26.02.2001

erstellt am: 12. Jan. 2016 08:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Guten Tag!

Kann mich jemand etwas unterstützen? Ich habe zwei VBA-Makros für Outlook 2007, die ich gerne zu einem neuen zusammen fügen würde und bräuchte dabei Hilfe.

In diesem Makro kann man eingehende E-Mails beim Eingang prüfen und anhand des Dateityps auswählen

http://www.vboffice.net/de/developers/anlagen-automatisch-drucken

Und mit diesem Makro kann man ausgewählte E-Mails automatisch einer Kategorie zuordnen

http://www.vboffice.net/de/developers/email-automatisch-kategorisieren


Am Ende hätte ich gerne ein Makro, mit dem automatisch eingehende Mails, die einen bestimmten Dateityp als Anhang haben, einer bestimmten Kategorie zugeordnet werden.

Ich bekomme am Tag nämlich sehr viele Bestellungen per Mail. Viele davon mit Anhang. Meistens sind es PDF-Dateien. Gelegentlich sind dabei dann auch noch zusätzlich *.xml-Dateien. Dies sind Bestellungen, die man in ein Programm einlesen und weiter verarbeiten kann. Damit diese nicht übersehen werden, möchte ich solche Mails gerne einer Kategorie zuweisen.

Vielleicht kann mir ja jemand behilflich sein.

------------------
Gruß, Heino

[Diese Nachricht wurde von Heino Casper am 13. Jan. 2016 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



Sehen Sie sich das Profil von KlaK an!   Senden Sie eine Private Message an KlaK  Schreiben Sie einen Gästebucheintrag für KlaK

Beiträge: 2624
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2014
Plateia, Canalis
Visual Basic

erstellt am: 12. Jan. 2016 18:13    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Heino Casper 10 Unities + Antwort hilfreich

Hallo Heino,

Die Links funktionieren so wie von Dir eingegeben nicht, Du solltest das nächste mal bei

[ URL=http://INTERNETADRESSEHIER]http://www.vboffice.net/de/developers/anlagen-automatisch-drucken[/URL ]

das INTERNETADRESSEHIER mit der tatsächlichen ADresse ersetzen also:

[ URL=http://www.vboffice.net/de/developers/anlagen-automatisch-drucken]http://www.vboffice.net/de/developers/anlagen-automatisch-drucken[/URL ]

Habe Deine Adressen mal korrigiert:

Zitat:
Original erstellt von Heino Casper:
Kann mich jemand etwas unterstützen? Ich habe zwei VBA-Makros für Outlook 2007, die ich gerne zu einem neuen zusammen fügen würde und bräuchte dabei Hilfe.

In diesem Makro kann ich eingehende E-Mails beim Eingang prüfen und anhand des Dateityps auswählen:
http://www.vboffice.net/de/developers/anlagen-automatisch-drucken

Und mit diesem Makro kann ich ausgewählte E-Mails automatisch einer Kategorie zuordnen:
http://www.vboffice.net/de/developers/email-automatisch-kategorisieren


Ansonsten sollte das zusammenfügen der beiden Makros kein großes Problem sein, man müßte ja nur die Select Case sFileType um die Endung .xml ergänzen ( CASE ".xlm") und dann das Makro mit den Kategorien zuweisen für diese Nachricht aufrufen.

Ist eine interessante Sache, mal sehen ob ich da mal Zeit zum testen finde ...

Grüße
Klaus 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Heino Casper
Mitglied
CAD/PLM Administrator


Sehen Sie sich das Profil von Heino Casper an!   Senden Sie eine Private Message an Heino Casper  Schreiben Sie einen Gästebucheintrag für Heino Casper

Beiträge: 483
Registriert: 26.02.2001

erstellt am: 13. Jan. 2016 14:43    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

So funktioniert es nicht:

Zitat:

Private WithEvents Items As Outlook.Items

'Diese Kategorie automatisch zuweisen
Private Const AUTO_CATEGORY As String = "mit Klimax-Datei"

Private Sub Application_Startup()
  Dim Ns As Outlook.NameSpace
  Dim Inbox As Outlook.MAPIFolder
  Dim Subfolder As Outlook.MAPIFolder

  Set Ns = Application.GetNamespace("MAPI")

  'Posteingang
  Set Inbox = Ns.GetDefaultFolder(olFolderInbox)

  'Unterordner des Posteingangs
  Set Subfolder = Inbox.Folders("Mail mit Anhang")

  Set Items = Subfolder.Items
End Sub

Private Sub Items_ItemAdd(ByVal Item As Object)
  Dim colAtts As Outlook.Attachments
  Dim oAtt As Outlook.Attachment
  Dim sFile As String
  Dim sDirectory As String
  Dim sFileType As String
  Dim Cats() As String
  Dim i&
  Dim Exists As Boolean

  Set colAtts = oMail.Attachments

  If colAtts.Count Then
    For Each oAtt In colAtts
      sFileType = LCase$(Right$(oAtt.FileName, 4))
      Select Case sFileType
      Case ".xls", ".doc"
        sFile = ATTACHMENT_DIRECTORY & oAtt.FileName
        oAtt.SaveAsFile sFile
     
 
    If Len(Item.Categories) Then
    'Prüfe, ob die Kategorie schon zugewiesen ist
    Cats = Split(Item.Categories, ";")
    For i = 0 To UBound(Cats)
      If LCase$(Cats(i)) = LCase$(AUTO_CATEGORY) Then
        Exists = True
        Exit For
      End If
    Next

    If Exists = False Then
      Item.Categories = Item.Categories & ";" & AUTO_CATEGORY
      Item.Save
    End If

  Else
    Item.Categories = AUTO_CATEGORY
    Item.Save
  End If
  End Select
End Sub


------------------
Gruß, Heino

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



Sehen Sie sich das Profil von KlaK an!   Senden Sie eine Private Message an KlaK  Schreiben Sie einen Gästebucheintrag für KlaK

Beiträge: 2624
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2014
Plateia, Canalis
Visual Basic

erstellt am: 20. Jan. 2016 15:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Heino Casper 10 Unities + Antwort hilfreich

Hallo,

Hatte gerade einmal ein paar Minuten Zeit
Wenn Du diesen Code verwendest sollte es klappen, wobei hier gleich die eingehenden Mails untersucht werden.
Möchtest Du nur Mails im Unterordner müßte das noch angepasst werden.

Code:

Private WithEvents Items As Outlook.Items

'Diese Kategorie automatisch zuweisen
Private Const AUTO_CATEGORY As String =  "mit Klimax-Datei"

Private Sub Application_Startup()
  Dim Ns As Outlook.NameSpace
  Dim Inbox As Outlook.MAPIFolder
  Dim Folder As Outlook.MAPIFolder

  Set Ns = Application.GetNamespace("MAPI")

  'Posteingang
  Set Inbox = Ns.GetDefaultFolder(olFolderInbox)
  Set Folder = Ns.GetDefaultFolder(olFolderInbox)
  Set Items = Folder.Items

End Sub

Private Sub Items_ItemAdd(ByVal Item As Object)
  If TypeOf Item Is Outlook.MailItem Then
    CatAttachments Item
  End If
End Sub

Private Sub CatAttachments(oMail As Outlook.MailItem)
  On Error Resume Next
  Dim colAtts As Outlook.Attachments
  Dim oAtt As Outlook.Attachment
  Dim sFile As String
  Dim sDirectory As String
  Dim Cats() As String
  Dim i&
  Dim Exists As Boolean


  Set colAtts = oMail.Attachments

  If colAtts.Count Then
    For Each oAtt In colAtts

      sFileType = LCase$(Right$(oAtt.FileName, 4))

      Select Case sFileType
      Case ".xml"
          If Len(oMail.Categories) Then
            'Prüfe, ob die Kategorie schon zugewiesen ist
            Cats = Split(oMail.Categories, ";")
            For i = 0 To UBound(Cats)
              If LCase$(Cats(i)) = LCase$(AUTO_CATEGORY) Then
                Exists = True
                Exit For
              End If
            Next
       
            If Exists = False Then
              oMail.Categories = oMail.Categories & ";" & AUTO_CATEGORY
              oMail.Save
            End If
       
          Else
            oMail.Categories = AUTO_CATEGORY
            oMail.Save
          End If
      End Select
    Next
  End If
End Sub


Dieser Code muß unter ThisOutlookSession eingetragen sein damit der Eventhandler funktioniert

Melde Dich wenn Du Fragen zum Ablauf hast

Grüße
Klaus  

[Edit] Nach PN erledigt-Häkchen gesetzt

[Diese Nachricht wurde von KlaK am 22. Jan. 2016 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz