Severus schrieb am 14.12.2010 19:29:50:
 
 Stefan76 schrieb am 14.12.2010 16:45:08:
 
 Hallo Leute,
 
 aktuell lasse ich in Outlook 2003 per VBA alle PDF Anhänge in neuen Mails
 automatisch Drucken. Ist es möglich nur PDF Anhänge von bestimmten Absendern wie z.b. *@123.de drucken zu lassen?? 
 Hier mein bisheriger Code der unter ThisOutlookSession steht:
 
 Private Declare Function ShellExecute Lib "shell32.dll" Alias _
   "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, _
   ByVal lpFile As String, ByVal lpParameters As String, _
   ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
  
 Private WithEvents Items As Outlook.Items
  
 Private Sub Application_Startup()
   Dim Ns As Outlook.NameSpace
   Dim Folder As Outlook.MAPIFolder
  
   Set Ns = Application.GetNamespace("MAPI")
   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
     PrintAttachments Item
   End If
 End Sub
  
 Private Sub PrintAttachments(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 sFileType As String
   sDirectory = "D:\Attachments\"
   Set colAtts = oMail.Attachments
 If colAtts.Count Then
     For Each oAtt In colAtts
       sFileType = LCase$(Right$(oAtt.FileName, 4))
       Select Case sFileType
       Case ".pdf"
         sFile = ATTACHMENT_DIRECTORY & oAtt.FileName
         oAtt.SaveAsFile sFile
         ShellExecute 0, "print", sFile, vbNullString, vbNullString, 0
       End Select
     Next
   End If
   End Sub
 
 Ich hoffe mir kann hier jemand helfen. 
 Schon mal Danke!!!!
 
 Das ist für mich ein bißchen ein Problem! Privat würde ich nie Outlook verwenden. Es ist daher ein bißchen problematisch sich an die Eigenschaften zu erinnern. Ich denke aber, daß es so gehen müßte:
 
 If InStr(1, UCase(oMail.SenderEmailAddress), "@123.DE", vbBinaryCompare) = 0 Then Exit Sub
 
 Set colAtts = oMail.Attachments
 If colAtts.Count Then
 For Each oAtt In colAtts
 sFileType = LCase$(Right$(oAtt.FileName, 4))
 Select Case sFileType
 Case ".pdf"
 sFile = ATTACHMENT_DIRECTORY & oAtt.FileName
 oAtt.SaveAsFile sFile
 ShellExecute 0, "print", sFile, vbNullString, vbNullString, 0
 End Select
 Next
 End If
 
 Severus
 
 
 Hallo hab den Code jetzt getestet leider funktioniert er nicht. Jetzt wird gar nichts mehr gedruckt! Hast 
 Du evtl. noch eine Idee!?!#
 
 Gruß     |