Office-Fragen.de
Anhänge aus Oulook speichern mit VBA macht Probleme - Druckversion

+- Office-Fragen.de (https://office-fragen.de)
+-- Forum: Microsoft Office (https://office-fragen.de/forum-1.html)
+--- Forum: Excel (https://office-fragen.de/forum-2.html)
+--- Thema: Anhänge aus Oulook speichern mit VBA macht Probleme (/thread-27165.html)



Anhänge aus Oulook speichern mit VBA macht Probleme - Klaus_jürgen - 11.03.2022

Guten Morgen,

Ich habe die Aufgabe bekommen ein Skript zu erstellen dass Anhänge aus einem Postfach in Outlook in einen Ordner kopiert und diese einen neuen Namen gibt. Welchen Namen die Datei bekommt wäre nicht wichtig, es muss nur ein neuer Name vergeben werden da die Datei die per Mail kommt immer den gleichen Namen hat. Ein funktionierendes Skript dass die Anhänge speichert habe ich schon, nur wenn ich versuche dass nur .pdf dateien geladen werden sollen funktioniert es nicht mehr. Oder anderesherum, ich habe mit viel Googeln und rumprobieren ein Skript dass nur .pdf Dateien lädt, aber der Name wird nicht wie gewünscht geändert.

Hier das Skript dass alle Anhänge holt und den namen anpasst:

Public Sub saveAttachtoDisk(itm As Outlook.MailItem)

    Dim objAtt As Outlook.Attachment

    Dim saveFolder As String

        saveFolder = "C:\Users\USER\Documents\Anhange\"

    Dim dateFormat As String

        dateFormat = Format(itm.ReceivedTime, "yyyy-mm-dd Hmm ")

    For Each objAtt In itm.Attachments

        objAtt.SaveAsFile saveFolder & "\" & dateFormat & objAtt.DisplayName

    Next

End Sub

Und hier welches nur .pdf holt.

Public Sub Anhaenge_handeln(myItem As Outlook.MailItem)
Dim mAtts As Attachments
Dim mAtt  As Attachment
Dim sFile As String, P As Integer
Set mAtts = myItem.Attachments
While mAtts.Count > 0
  Set mAtt = mAtts(1)
  sFile = mAtt.DisplayName
  If sFile Like "*.pdf" Then
      P = InStrRev(sFile, ".")
      mAtt.SaveAsFile "C:\Users\USER\Documents\Anhange\" & Format$(Date, "yyyymmdd hhmmss") & mAtts.Count & sFile
  ElseIf sFile Like "Auswertung*" Then
  End If
  mAtts.Remove 1
Wend
End Sub



Es wird zwar auch ein neuer Name erzeugt, aber nur mit dem aktuellen Datum, nicht z.B. dem Eingangsdatum der Mail.



Wisst ihr wie das erste Skript dazu bekomme einfach nur .pdf Dateien zu sichern und dann das Eingangsdatum als Name der Datei anzugeben?

Es gibt dann noch das Problem dass das Skript dann zwar bei mir in einer Regel funktioniert, aber nicht beim User der es nutzen müsste, aber das könnte ich hinbekommen.

Habt ihr einen Tip?


Danke Smile


RE: Anhänge aus Oulook speichern mit VBA macht Probleme - maninweb - 11.03.2022

Hallo,

ungetestet, versuche mal statt Format$(Date, "yyyymmdd hhmmss") dann Format$(myItem.ReceivedTime, "yyyymmdd hhmmss")

Gruß


RE: Anhänge aus Oulook speichern mit VBA macht Probleme - Klaus_jürgen - 11.03.2022

Könnt so einfach sein... Danke, hat funktioniert. Meistens, wenn ich irgendwas geändert habe hat das Skript einfach garnichts mehr gemacht und ich war schon am verzweifeln... jetzt gehts. Wenn ich es jetzt noch beim User zum laufen bekomm bin ich glücklich. danke Smile

!EDIT!: Es klappt beim User im normalen Postfach, nicht allerdings in der Gruppenmailbox. Wir bekommen von unserem Kunden Rechnungen in eine Gruppenpostfach und da müsste das Skript funktionieren, es passiert aber nichts. keine .pdf wird gespeichert. Ist die Mail allerdings im Postfach vom User selbst klappt es ohne Probleme. Dazu noch eine Idee? Big Grin


RE: Anhänge aus Oulook speichern mit VBA macht Probleme - maninweb - 12.03.2022

Hallo,

Outlook VBA ist nicht meine Welt. Du müsstest aber in Deinem Code einen Aufbau einer Session zu Outlook haben.
Dort müstse man auf die entsprechende Objekte zugreifen können. Beispielhaft hier.

Gruß


RE: Anhänge aus Oulook speichern mit VBA macht Probleme - Klaus_jürgen - 15.03.2022

Hallo,

Ich habe es jetzt damit gelöst über eine Regel alle Mails ins Postfach zu kopieren und da dann das Skript auszuführen. Leider nimmt das Skript nicht alle Mails mit, sonder nur ca. 70%. Der rest wird nicht exportiert.

Naja, zumindest gehts weiter.
Grüße