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

Outlook Attachments....nicht alle werden gespeichert

Frage Entwicklung Batch & Shell

Mitglied: Dpole86

Dpole86 (Level 1) - Jetzt verbinden

08.08.2014 um 11:26 Uhr, 729 Aufrufe, 5 Kommentare

Hallo zusammen

ich versuche mich gerade in VBA.

Allerdings habe ich das Problem das nicht alle Attachments gespeichert werden.
Duplicate werden einfach ausgelassen

Mein Code

01.
 
02.
Public Sub saveAttachtoDisk(itm As Outlook.MailItem) 
03.
Dim objAtt As Outlook.Attachment 
04.
Dim saveFolder As String 
05.
Dim dateFormat 
06.
dateFormat = Format(Now, "yyyy-mm-dd H-mm") 
07.
If Dir("C:\Temp", vbDirectory) = "" Then 
08.
  MkDir ("C:\Temp") 
09.
Else 
10.
saveFolder = "c:\temp\" 
11.
     For Each objAtt In itm.Attachments 
12.
          objAtt.SaveAsFile saveFolder & "\" & dateFormat & "-" & objAtt.DisplayName 
13.
          Set objAtt = Nothing 
14.
     Next 
15.
End If 
16.
End Sub 
17.
 
Was mache ich falsch? bzw was fehlt mir den damit der Code Funktioniert?
Mitglied: colinardo
08.08.2014, aktualisiert um 11:50 Uhr
Zitat von Dpole86:
Duplicate werden einfach ausgelassen
Was mache ich falsch? bzw was fehlt mir den damit der Code Funktioniert?
irgendwie logisch das wenn eine Datei schon im Dateisystem existiert, diese nicht erneut von der SaveAsFile-Funktion unter dem gleichen Namen abgespeichert werden kann. Das musst du voher überprüfen und gegebenenfalls einen neuen Namen dafür generieren bzw. einfach eine Nummer anhängen. z.B. so:

01.
.. 
02.
... 
03.
.... 
04.
dim fso 
05.
set fso = CreateObject("Scripting.FilesystemObject") 
06.
For Each objAtt In itm.Attachments 
07.
   filename =  saveFolder & "\" & dateFormat & "-" & objAtt.Filename 
08.
   number = 1 
09.
   while fso.FileExists(filename) 
10.
      filename =  saveFolder & "\" & dateFormat & "-" & fso.GetBasename(objAtt.Filename) & "(" & number & ")." & fso.GetExtensionName(objAtt.Filename) 
11.
      number = number + 1 
12.
   Wend 
13.
   objAtt.SaveAsFile filename 
14.
   Set objAtt = Nothing 
15.
Next
Grüße Uwe

11:50 : -edit- Fehler in Zeile 10 korrigiert
Bitte warten ..
Mitglied: Dpole86
08.08.2014 um 11:50 Uhr
Hi Uwe

Vielen Dank für deine Antwort

mein Code bringt jetzt einen Fehler

und sieht folgendermassen aus

01.
  
02.
Public Sub saveAttachtoDisk(itm As Outlook.MailItem) 
03.
Dim objAtt As Outlook.Attachment 
04.
Dim saveFolder As String 
05.
Dim dateFormat 
06.
Dim fso 
07.
 
08.
dateFormat = Format(Now, "yyyy-mm-dd H-mm") 
09.
If Dir("C:\Temp", vbDirectory) = "" Then 
10.
  MkDir ("C:\Temp") 
11.
Else 
12.
 
13.
saveFolder = "c:\temp\" 
14.
Set fso = CreateObject("Scripting.FilesystemObject") 
15.
     For Each objAtt In itm.Attachments 
16.
   FileName = saveFolder & "\" & dateFormat & "-" & objAtt.FileName 
17.
   Number = 1 
18.
   While fso.FileExists(FileName) 
19.
      FileName = saveFolder & "\" & dateFormat & "-" & fso.GetBasename(objAtt.FileName) & "(" & Number & ")." & fso.GetExtensionName 
20.
      Number = Number + 1 
21.
   Wend 
22.
   objAtt.SaveAsFile FileName 
23.
   Set objAtt = Nothing 
24.
   Next 
25.
End If 
26.
End Sub
ich denke ich habe was falsch gemacht
Bitte warten ..
Mitglied: colinardo
08.08.2014, aktualisiert um 11:53 Uhr
hatte einen kleinen Fehler in Zeile 10 meines Codes korrigiert, s.o.
Bitte warten ..
Mitglied: Dpole86
08.08.2014 um 12:03 Uhr
Hey Ja das war es

noch eine Frage an dich Uwe.

wenn ich jetzt das Datum nicht vor, sondern hinter der Datei haben möchte,

Ok ich habs glaub verbockt ^^

01.
Public Sub saveAttachtoDisk(itm As Outlook.MailItem) 
02.
Dim objAtt As Outlook.Attachment 
03.
Dim saveFolder As String 
04.
Dim dateFormat 
05.
Dim fso 
06.
 
07.
dateFormat = Format(Now, "yyyy-mm-dd H-mm") 
08.
If Dir("C:\Temp", vbDirectory) = "" Then 
09.
  MkDir ("C:\Temp") 
10.
Else 
11.
 
12.
saveFolder = "c:\temp\" 
13.
Set fso = CreateObject("Scripting.FilesystemObject") 
14.
     For Each objAtt In itm.Attachments 
15.
   FileName = saveFolder & "\" & dateFormat & "-" & objAtt.FileName 
16.
   Number = 1 
17.
   While fso.FileExists(FileName) 
18.
      FileName = saveFolder & "\" & fso.GetBasename(objAtt.FileName) & dateFormat & "." & fso.GetExtensionName(objAtt.FileName) 
19.
      Number = Number + 1 
20.
   Wend 
21.
   objAtt.SaveAsFile FileName 
22.
   Set objAtt = Nothing 
23.
   Next 
24.
End If 
25.
End Sub


Ich wollte das es so aussieht

briefkopf-212014-08-08 11-59.tif

Grüße Roman
Bitte warten ..
Mitglied: colinardo
08.08.2014, aktualisiert um 12:09 Uhr
einmal hier (in deinem Code Zeile 15)
filename =  saveFolder & "\" & fso.GetBasename(objAtt.Filename) & "-" & dateFormat & "." & fso.GetExtensionName(objAtt.Filename) 
und dann noch hier in der while-Schleife
filename =  saveFolder & "\" & fso.GetBasename(objAtt.Filename) & "-" & dateFormat & "(" & number & ")." & fso.GetExtensionName(objAtt.Filename) 
btw. mach in Zeile 12 noch bei
savefolder = "c:\Temp\"
den abschließenden Backslash weg ....
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Outlook & Mail
gelöst Sicheres Öffnen von Office-Attachments in Outlook (3)

Frage von donnyS73lb zum Thema Outlook & Mail ...

Outlook & Mail
Outlook Ablage - habt ihr eine Idee? (3)

Frage von MegaGiga zum Thema Outlook & Mail ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Outlook & Mail
Outlook 2016 und Autodiscover (1)

Frage von a.grothe zum Thema Outlook & Mail ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (18)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...