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
GELÖST

Nur bestimmte Anhänge speichern

Frage Microsoft Outlook & Mail

Mitglied: Mephisti

Mephisti (Level 1) - Jetzt verbinden

28.02.2011, aktualisiert 09:26 Uhr, 3706 Aufrufe, 5 Kommentare

Hallo Allerseites,

ich bastel gerade an einem Script herum, um nur bestimmte Mailanhänge im Dateisystem abzuspeichern.
Lasse ich die Einschränkung weg funktioniert alles tadellos. Versuche ich allerdings den Dateityp der Anlage auf pdf zu reduzieren (and LCase(Right(Item.FileName, 4)) = ".pdf") komme ich über einen Laufzeitfehler 91 nicht hinaus ... Objekt oder Withblockvariable nicht definiert.

Danke für Eure Hilfe.

Gruß Mephisti

01.
Private Sub myOlItems_ItemAdd(ByVal Item As Object) 
02.
  Const sPfad  As String = "C:\Daten\Outlook-Anhang" 
03.
     
04.
    Dim iAttachCnt As Integer 
05.
    Dim i As Integer 
06.
    Dim myItem As Outlook.MailItem 
07.
    Dim DateFolderPath As String 
08.
    Dim fso As Object 
09.
        
10.
    DateFolderPath = sPfad & "\" & Format(Date, "dd-mm-yyyy") 
11.
    Set fso = CreateObject("Scripting.FileSystemObject") 
12.
     
13.
    If Not fso.FolderExists(sPfad) Then 
14.
        fso.CreateFolder sPfad 
15.
    End If 
16.
 
17.
    If Not fso.FolderExists(DateFolderPath) Then 
18.
        fso.CreateFolder DateFolderPath 
19.
    End If 
20.
     
21.
    If TypeName(Item) = "MailItem" Then 
22.
    With Item.Attachments 
23.
      iAttachCnt = .Count 
24.
      If iAttachCnt > 0 Then 
25.
       'For i = 1 To iAttachCnt then <--- Mit dieser Variante werden alle Anlagen abgespeichert, ist aber nicht Ziel 
26.
        For i = 1 To iAttachCnt and LCase(Right(Item.FileName, 4)) = ".pdf" Then <--- Hier kommt der Laufzeitfehler 91 
27.
          .Item(i).SaveAsFile DateFolderPath & "\" & .Item(i).FileName 
28.
        Next i 
29.
      End If 
30.
    End With 
31.
  End If 
32.
  End Sub
[Edit Biber] Codeformatierung [/Edit]
Mitglied: StefanKittel
28.02.2011 um 09:14 Uhr
Moin,

wo wird denn Item.FileName dem Index zugeordnet?

müßte das nicht so sein:

01.
For i = 1 To iAttachCnt then 
02.
  if (LCase(Right(.Item(i).FileName, 4)) = ".pdf") then 
03.
    .Item(i).SaveAsFile DateFolderPath & "\" & .Item(i).FileName 
04.
  end if 
05.
Next i
Stefan

PS: nicht getestet!
Bitte warten ..
Mitglied: bastla
28.02.2011 um 09:27 Uhr
Hallo Mephisti!

Das ließe sich etwas kompakter formulieren (und schöner formatiert posten ):
01.
... 
02.
If TypeName(Item) = "MailItem" Then 
03.
    With Item.Attachments 
04.
        For i = 1 To .Count 'wenn .Count < 1 wird die Schleife ohnehin übersprungen 
05.
            If LCase(Right(.Item(i).FileName, 4)) = ".pdf" Then .Item(i).SaveAsFile DateFolderPath & "\" & .Item(i).FileName 
06.
        Next 
07.
    End With 
08.
End If
Alternativ sollte auch
01.
... 
02.
If TypeName(Item) = "MailItem" Then 
03.
    For Each Attach In Item.Attachments 
04.
        File = Attach.FileName 
05.
        If LCase(Right(File, 4)) = ".pdf" Then Attach.SaveAsFile DateFolderPath & "\" & File 
06.
    Next 
07.
End If
funktionieren - das Testen muss ich allerdings Dir überlassen ...

Grüße
bastla
Bitte warten ..
Mitglied: Mephisti
28.02.2011 um 09:33 Uhr
Hallo Bastla,
hallo Stephan,

werd eure beiden Vorschläge testen, Ergebnis folgt.
Danke schon mal im voraus.

Gruß
Mephisti
Bitte warten ..
Mitglied: Biber
28.02.2011 um 09:35 Uhr
Moin Mephisti,

wenn es etwas gibt, was ich noch mehr hasse als Montage...
-> Dann sind es Montags-Beiträge mit Programmschnipseln ohne Codeformatierung.

Dein Fauxpas in diesem Codefragment:

  • Du hast doch schon in Zeile 22 gesagt "With Item.Attachment"
  • In der FOR i=1 TO... -Konstruktion sprichst du aber nicht ".(i).FileName" (==Item.Attachment(i).Filename) an, sondern ein "Item.Filename". Das gibt es aber nicht.
  • Also ersetze "LCase(Right(Item.(i).FileName, 4))" durch "LCase(Right(.(i).FileName, 4))".

[Ebenfalls ungetestet]
Grüße
Biber

[Edit] Montags bin ich immer vieeeel zu langsam....[/Edit]
Bitte warten ..
Mitglied: Mephisti
28.02.2011 um 17:44 Uhr
Hallo Bastla,

dein erster Tipp hatte schon das gewünschte erreicht.
Besten Dank auch an alle anderen für eure Hilfe!

Gruß
Mephisti
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Outlook & Mail
gelöst Email Anhänge speichern VB Script aber nur bestimmte Dateitypen (Outlook) (4)

Frage von LindeUnimog zum Thema Outlook & Mail ...

VB for Applications
gelöst Bestimmte Spalten aus CSV-Datei auslesen (VBS) (9)

Frage von Gurkenhobel zum Thema VB for Applications ...

VB for Applications
gelöst VBA-Makro verschwindet nach Speichern (5)

Frage von lupi1989 zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...