Home-›Foren-›Outlook-›Outlook VBA-›Outlook Anhänge speichern
- This topic has 3 Antworten, 3 Stimmen, and was last updated 20:57 um 19. Dezember 2005 by JohannK.
- AutorBeitrag
- 6. Dezember 2005 um 10:17 #33409fsingerParticipant
Hallo liebes Team,
da ich leider nur grundlegende Ahnung von VB habe und ich zwar selber auch kleine Skripte schreiben kann, hätte ich zu diesem Skript eine Frage:
[code]
Private Sub Application_NewMail()
Dim Ordnername As String
Dim objPosteingang As MAPIFolder
Dim objNewMail As MailItem
On Error Resume Next
Set objPosteingang = Application.GetNamespace(\”MAPI\”).GetDefaultFolder(olFolderInbox)
For Each objNewMail In objPosteingang.Items
With objNewMail
If .UnRead = True Then
Anzahl = .Attachments.Count
If Anzahl > 0 Then
Ordnername = \”C:\\temp\” & objNewMail.SenderName
MkDir Ordnername
For i = 1 To Anzahl
.Attachments.Item(i).SaveAsFile Ordnername & \”\” & .Attachments.Item(i).FileName
Next i
End If
End If
End With
Next objNewMail
End Sub
[/code]Wie schaffe ich es, dass die Anhänge nur in einem Ordner abgespeichert werden bzw. wie muss ich das anpassen. Habe schon versucht eine Zeile vor der Schleife einzufügen, die einen festen Ordnernamen vorgibt, aber leider ohne Erfolg.
Dann hätte ich noch eine spezielle Frage.
Ich bekomme immer dieselben Anhänge, die auf dem Server gespeichert werden sollen.
Diese heissen pririons.dat, wshsende.dat und n71kovvg* ( hier ändert sich immer die laufende Nr am Ende, was ja kein Problem sein sollte nur auf diesen String zu gehen).Wie schaffe ich es jetzt, dass ich nur auf diese Anhänge abfrage, wenn diese eingehen und die dann in ein bestimmtes Verzeichnis landen?
Wäre sehr dankbar für Eure Hilfe!!
Danke
Frank Singer
11. Dezember 2005 um 10:38 #121097JohannKParticipant> Wie schaffe ich es, dass die Anhänge nur in einem Ordner abgespeichert werden
Ordnername = \”C:\\temp\” ( OHNE: & objNewMail.SenderName )
> pririons.dat, wshsende.dat und n71kovvg*
Dann müsste Dein Code ungefähr so aussehen:
Private Sub Application_NewMail()
Dim Ordnername As String
Dim objPosteingang As MAPIFolder
Dim objNewMail As MailItem
Dim WS1 as string \’ Hilfsstring
On Error Resume Next
Set objPosteingang =
Application.GetNamespace(\”MAPI\”).GetDefaultFolder(olFolderInbox)
For Each objNewMail In objPosteingang.Items
With objNewMail
If .UnRead = True Then
Anzahl = .Attachments.Count
If Anzahl > 0 Then
Ordnername = \”C:\\temp\” \’ Standardmäßig in diesen Ordner ablegen
MkDir Ordnername
For i = 1 To Anzahl
WS1 = lcase$(.Attachments.Item(i).FileName) \’ Filename in Kleinschreibung
if WS1 = \”pririons.dat\” _
or WS1 = \”wshsende.dat\” _
or left$(ws1,8) = \”n71kovvb\” then \’ Wenn ein Sonderfile
Ordnername = \”C:\\Sonderfiles\” \’ Anderen Ziel-Ordner zuweisen
endif
.Attachments.Item(i).SaveAsFile Ordnername & \”\” & .Attachments.Item(i).FileName
Next i
End If
End If
End With
Next objNewMail
End SubLiebe Grüße aus Wien
Johann13. Dezember 2005 um 11:17 #121218UnbekanntParticipantLieber Johann,
erstmal vielen Dank für Deine Hilfe, aber eine Sache klappt irgendwie immer noch nicht richtig.
Hier mein angepasster Code:[code]
Private Sub Application_NewMail()
Dim Ordnername As String
Dim objPosteingang As MAPIFolder
Dim objNewMail As MailItem
Dim WS1 As String
On Error Resume Next
Set objPosteingang = Application.GetNamespace(\”MAPI\”).GetDefaultFolder(olFolderInbox)
For Each objNewMail In objPosteingang.Items
With objNewMail
If .UnRead = True Then
Anzahl = .Attachments.Count
If Anzahl > 0 Then
Ordnername = \”C:\\temp\”
MkDir Ordnername
For i = 1 To Anzahl
WS1 = LCase$(.Attachments.Item(i).FileName)
If WS1 = \”pririons.dat\” _
Or WS1 = \”wshsende.dat\” _
Or Left$(WS1, 8) = \”n71kovvg\” Then
Ordnername = \”F:\\LDATEN\\LIEFERN\\Wiegedaten\”
End If
.Attachments.Item(i).SaveAsFile Ordnername & \”\” & .Attachments.Item(i).FileName
Next i
End If
End If
End With
Next objNewMail
End Sub
[/code]1.
Jetzt macht das Skript folgendes, dass es mir zwar die Sachen richtig rauszieht, aber speichert mir das nicht in den Unterordner \”Wiegedaten\”, sondern immer in den übergeordneten Ordner \”LIEFERN\”. Woran kann das liegen? Habe den Ordner \”Wiegedaten\” angelegt und sehe jetzt leider nicht das Problem.2.
Außerdem speichert mir das Skript die Dateien folgendermaßen ab: WiegedatenN71KOVVG.053
Ich will aber nur den reinen Filenamen sprich N71KOVVG.053
Wie bekomme ich das hin?Vielen Dank nochmals für Deine sehr kompetente Hilfe!!!
Wäre nett, wenn Du Zeit hast Dir das mal anzuschauen, weil ich bald mit dem Thema ausflippe…
VIELEN DANK
LIEBE GRÜSSE AUS NÜRNBERG
Frank
19. Dezember 2005 um 20:57 #121582JohannKParticipantHallo!
Ich schätze kleine Ursache große Wirkung:
Es fehlt der Backslash, der den Ordnername vom Filenamen trennt:.Attachments.Item(i).SaveAsFile Ordnername & \”\\\” & .Attachments.Item(i).FileName
LG
JohannLiebe Grüße aus Wien
Johann - AutorBeitrag
Das Thema ‘Outlook Anhänge speichern’ ist für neue Antworten geschlossen.