Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Outlook VBA - Alle Anhänge drucken!
#11
Hi,
sind denn überhaupt neue ungelesene Mails im Posteingang vorhanden? Laß den Code mal mit F8 schrittweiese durchlaufen und beobachte mal diesen Variablenwert
Code:
intAnlagen = .Attachments.Count

dazu einfach den Cursor auf intAnlagen halten oder im Direktfenster beobachten. Kommt da nix außer leer gibts keine neuen Mails.
Mit freundlichen Grüßen  :)
Michael
Antworten Top
#12
Hallo Michael,


bleibt immer leer, obwohl ich ständig neue Emails bekomme mit ungelesen Anhänge!
Ich glaube ich weiss auch warum, ich habe neben dem Standard Outlook "Posteingang" mein Postfach xxx@yyy (bearbeitet von Kuwer) und hier kommen die Emails in den Posteingang!
Wie kann ich das ändern, dass der Code nicht den Standard "Posteingang" nimmt, sondern den aus meinen Postfach?


Danke
VG
Alexandra
Antworten Top
#13
Hallo zusammen,


so nun habe ich das genauso gefunden wie ich es wollte, nur das drucken der Anlagen weiß ich nicht wie ich das machen soll:

Code:
Sub Anlage_verschieben()
Dim strPath As String
Dim objMail As MailItem
Dim intAnlagen As Integer, i As Integer
On Error Resume Next
'Pfad zu meinem Ordner
strPath = "C:\Anlagen"
'Schleife
For Each objMail In Outlook.ActiveExplorer.Selection
With objMail
'Mails auf vorh. Anlagen prüfen
intAnlagen = .Attachments.Count
If intAnlagen > 0 Then
For i = 1 To intAnlagen
'Anlagen im vordefinierten Verzeichnis sichern
.Attachments.Item(i).SaveAsFile strPath & "\" & .Attachments.Item(i).FileName
Next i
'Mails löschen
'objMail.Delete
End If
End With
Next objMail
End Sub
Kann mir hier noch jemand helfen?
Vielen Dank
VG
Alexandra
Antworten Top
#14
Hi,
ergänze mal an dieser Codestelle:


Code:
For i = 1 To intAnlagen
'Anlagen im vordefinierten Verzeichnis sichern
.Attachments.Item(i).SaveAsFile strPath & "\" & .Attachments.Item(i).FileName
.Attechments.Item(i).print  ' diese Zeile sollte dazu führen, daß alle gefundenen Anlagen direkt ausgedruckt werden, aber das ist sicher wenig sinnvoll, jeden Mist der ankommt auch auszudrucken
Next i
Mit freundlichen Grüßen  :)
Michael
Antworten Top
#15
Hallo Michael,


leider tut sich da nichts!? :(
Nee Idee? Die Schreibweise habe ich bereits korrigiert!


Danke
Alexandra
Antworten Top
#16
Hi, da ich nicht mit Outlook arbeite liegen auch nur bedingt Infos vor. Schau mal ob dir das weiterhilft: http://www.herber.de/forum/archiv/1288to...ucken.html
Mit freundlichen Grüßen  :)
Michael
Antworten Top
#17
Hallo!

Die Print-Anweisung gibt es für Anhänge nicht, daher läuft .Attachments(i).Print ins Leere. "On Error Resume Next" sollte man vermeiden wenn man Programmierfehler erkennen möchte.

Testen konnte ich nicht, da es unter Windows 10 anscheinend nicht richtig funktioniert, zumindest nicht mit PDF-Dateien.

Public Sub PrintPDFFile()

 Dim oMailAttach As Outlook.Attachment
 Dim oMailItem   As Outlook.MailItem

 Select Case True
        Case TypeOf Application.ActiveWindow Is Outlook.Inspector
             Set oMailItem = Application.ActiveInspector.CurrentItem
        Case Else
             With Application.ActiveExplorer.Selection
                  If .Count Then Set oMailItem = .Item(1)
             End With
        If oMailItem Is Nothing Then Exit Sub
 End Select

      
  For i = 1 To oMailItem.Attachments.Count
      ShellExecute 0, "print", oMailItem.Attachments(i).Filename, vbNullString, vbNullString, 0
  Next i

End Sub


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


Gruß, René
Antworten Top
#18
Hallo Rene,


da bekomme ich immer eine Fehlermeldung:

Sub oder Function nicht definiert!
Betrifft "Shellexecute"!?

DAnke
VG
Alexandra
Antworten Top
#19
Hi schau dir mal in meknem Hinweis in dem Beitrag bei Herber den Code an.  Da hat Rene in seinem Posting etwas ausgelassen.
Mit freundlichen Grüßen  :)
Michael
Antworten Top
#20
Hallo Rene, Hallo Michael,


so nun funktioniert es wie gewünscht! :)
Code:
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
Sub Anlagen_Drucken()
Dim strPath As String
Dim objMail As MailItem
Dim intAnlagen As Integer, i As Integer
Dim sFile As String
On Error Resume Next
'Pfad zu meinem Ordner
strPath = "C:\Anlagen"
'Schleife
For Each objMail In Outlook.ActiveExplorer.Selection
With objMail
'Mails auf vorh. Anlagen prüfen
intAnlagen = .Attachments.Count
If intAnlagen > 0 Then
For i = 1 To intAnlagen
'Anlagen im vordefinierten Verzeichnis sichern
.Attachments.Item(i).SaveAsFile strPath & "\" & .Attachments.Item(i).FileName
sFile = strPath & "\" & .Attachments.Item(i).FileName
ShellExecute 0, "print", sFile, vbNullString, vbNullString, 0
Next i
'Mails löschen
'objMail.Delete
End If
End With
Next objMail
End Sub
Macht genau das was es soll!
Kann mir jemand diesen Teil hier erklären:
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


Vielen Dank
VG
Alexandra
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste