11.03.2022, 10:12
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
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