Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
Kommentar vom Moderator Biber am 02.07.2009 um 18:49:23 Uhr
Ich hab den Beitrag mal von "BASIC" nach "Outlook" verschoben.
Und auf gelöst gesetzt.
GELÖST

Outlook mit VBA - Mailanhang in Ordner abspeichern, wobei der Betreff der Dateiname sein soll

Frage Microsoft Outlook & Mail

Mitglied: mreske

mreske (Level 1) - Jetzt verbinden

02.07.2009, aktualisiert 18:49 Uhr, 11596 Aufrufe, 6 Kommentare

Hallo Forumexperten,
ich bin im Internet auf dieses Forum gestossen und habe zuerst nur BIBER direkt angemailt.
Auf Bibers Rat hin veröffentliche ich hier nun mein Anliegen, damit alle Forummitglieder etwas von der Lösung des Problems haben. Das ist mein erster Beitrag.

Ich bekomme täglich sehr viele emails von unserer Hauptgeschäftsstelle mit Rechnungsanhängen als PDF.

1. Ich möchte gerne die PDF Anhänge in einem dafür vorgesehenen Ordner ablegen, was bereits funktioniert.(siehe VBA-Makro unten)
Dazu hatte mir folgender Beitrag schon sehr weitergeholfen: https://www.administrator.de/index.php?content=48253

PROBLEM:
Leider ist der Name der jeweiligen PDF Datei NICHT die Rechnungnummer, sondern eine fortlaufende Nummer, die vom System unserer Geschaftsstelle automatisch vergeben wird.

Ich muss die PDF Datei aber als Rechnungsnummer abspeichern. Diese Rechnungsnummer finde ich im Betreff der jeweiligen Mail.
Z.B.: VAUDE-Factura 61854816

FRAGE:
Wie kann ich nun die PDF Datei mit dem Betreff der Mail als Dateinamen abspeichern.
Oder noch komplizierter: Wie kann ich NUR die Rechnungsnummer (ohne "Vaude-Factura") also nur 61854816.pdf als Dateinamen abspeichern?

Hier einmal mein bereits vorhandener VBA CODE:

Sub Application_NewMail()
Dim strNewFolder As String
Dim objPosteingang As MAPIFolder
Dim objNewMail As MailItem
Dim oAttachment As Attachment

strNewFolder = "W:\VBA_TEST\"
On Error GoTo check_error
MkDir strNewFolder
Back1:
Set objPosteingang =
Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
For Each Item In objPosteingang.Items
If Item.Class = olMail Then
Set objNewMail = Item
With objNewMail

If .UnRead = True Then

intanlagen = .Attachments.Count
Debug.Print objNewMail & ": "; intanlagen If intanlagen > 0 Then For i = 1 To intanlagen Set oAttachment = .Attachments.Item(i) oAttachment.SaveAsFile strNewFolder & "\" & oAttachment.FileName

Next i
End If
End If
End With
End If
Next Item

check_error:
Debug.Print Err.Number; Err.Description
If Err.Number = 75 Then ' Fehler beim Zugriff auf Pfad -- ignorieren wir mal Err.Clear

GoTo Back1:
Else
'Err.Raise Err.Number, Err.Description

End If
Err.Clear
Resume Next

End Sub


Ich hoffe, Ihr könnt mir bei der Lösung behilflich sein.

Viele Grüsse aus Spanien
Manfred
Mitglied: 49097
02.07.2009 um 10:44 Uhr
Hallo Manfred,

sieht denn die Betreff-Zeile immer so aus, oder kann sich die Rechnungsnummer irgendwo verstecken?
Könntest Du ein paar mehr von diesen Betreffzeilen posten, damit man eventuell Gemeinsamkeiten sehen könnte?

Gruss

dsmg500
Bitte warten ..
Mitglied: mreske
02.07.2009 um 16:24 Uhr
Hallo dsmg500,
die Betreffzeile sieht IMMER so aus, nur die Rechnungsnummer ändert sich selbstverständlich:

Hier ein paar Beispiele:

VAUDE-Factura 61854816
VAUDE-Factura 61854817
VAUDE-Factura 61854815
VAUDE-Factura 61854814
VAUDE-Factura 61854812

usw......

Mir würde es natürlich auch reichen, wenn die PDF Datei mit dem kompletten Betreff (also z.B.: VAUDE-Factura 61854812.pdf) gespeichert wird, aber dennoch würde mich interessieren, wie man das "VAUDE-Factura " rausfiltert.

Bin überrascht dass so schnell auf meinen Beitrag geantwortet wird. Ich glaube ich stelle hier öfter mal was rein.

Beste Grüsse
Manfred
Bitte warten ..
Mitglied: 49097
02.07.2009 um 16:57 Uhr
Hallo Manfred,

wenn die Zeile immer so aussieht, dann könnte es so klappen:

01.
Dim strNewFolder As String 
02.
Dim objPosteingang As MAPIFolder 
03.
Dim objNewMail As MailItem 
04.
Dim oAttachment As Attachment 
05.
Dim ts() as String 
06.
 
07.
strNewFolder = "W:\VBA_TEST\" 
08.
On Error GoTo check_error 
09.
MkDir strNewFolder 
10.
Back1: 
11.
Set objPosteingang = 
12.
Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox) 
13.
For Each Item In objPosteingang.Items 
14.
If Item.Class = olMail Then 
15.
Set objNewMail = Item 
16.
With objNewMail 
17.
 
18.
If .UnRead = True Then 
19.
 
20.
intanlagen = .Attachments.Count 
21.
 
22.
'Hier die Betreffzeile der Mail lesen und dann nach Factura trennen 
23.
ts=split(objnewmail.subject ,"Factura") 
24.
'dann sollte in ts(1) die Rechnungsnummer mit einem Leerzeichen stehen 
25.
 
26.
Debug.Print objNewMail & ": "; intanlagen If intanlagen > 0 Then For i = 1 To intanlagen Set oAttachment = .Attachments.Item(i) oAttachment.SaveAsFile strNewFolder & "\" & trim(ts(1)) & ".pdf" 
27.
 
28.
Next i 
29.
End If 
30.
End If 
31.
End With 
32.
End If 
33.
Next Item 
34.
 
35.
check_error: 
36.
Debug.Print Err.Number; Err.Description 
37.
If Err.Number = 75 Then ' Fehler beim Zugriff auf Pfad -- ignorieren wir mal Err.Clear 
38.
 
39.
GoTo Back1: 
40.
Else 
41.
'Err.Raise Err.Number, Err.Description 
42.
 
43.
End If 
44.
Err.Clear 
45.
Resume Next 
46.
 
47.
End Sub
Ich hoffe, das klappt so unter VBA!

Gruss

dsmg500
Bitte warten ..
Mitglied: mreske
02.07.2009 um 18:32 Uhr
Hallo dsmg500,
tausend dank - es funktioniert - und das beim ersten Versuch.

Super Forum - besten Dank (auch an Frank (Bieber)

Hier in Barcelona kann´ste Spiegeleier auf der Strasse braten. Da bleibe ich lieber im kühlen Büro und lass mir noch mal Euer Marko durch den Kopf gehen.

Macht´s gut
Saludos
Manfred
Bitte warten ..
Mitglied: 49097
02.07.2009 um 18:43 Uhr
Dann viel Spaß und Danke für die Rückmeldung
Bitte warten ..
Mitglied: crashzero2000
03.07.2009 um 09:45 Uhr
Hy,

ja, ging mir genauso, heute ein Problem mit VBS gehabt , Minuten später eine Lösung die auch sofort funktionierte.
Ist wirklich genial hier ....

Auch Bastla ist echt super
Dank auch an dsmg500
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Outlook & Mail
Importieren von excel daten in outlook vba - Teil 2 (5)

Frage von Bgervais zum Thema Outlook & Mail ...

Microsoft Office
gelöst Importieren von excel daten in outlook vba (10)

Frage von Bgervais zum Thema Microsoft Office ...

VB for Applications
gelöst Outlook VBA, Alternative zu NewMailEx, neue bereits gelesene Email im Posteingang (12)

Frage von joha1908 zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Erkennung und -Abwehr
Spam mit eigener Domain (12)

Frage von NoobOne zum Thema Erkennung und -Abwehr ...