Avatar billede martens Guru
08. november 2023 - 15:37 Der er 5 kommentarer og
1 løsning

Læse mails på Exchange via VBA og gemme vedhæftede filer lokalt

Har lige et spørgsmål til I kloge hoveder.
jeg har nedenstående kode, der virker stort set som den bør, men der er lige en mindre hage ved denne,- Den fejler, når filen skal gemmes .

Er der én eller flere, der har et godt bud, hvad der går galt og hvad der skal ændres for at komme nærmere målet ?

På forhånd tak !

mvh martens

---  kode start ---

    Dim ol As New Outlook.Application
    Dim NameSpace As Outlook.NameSpace
    Dim ofO As Outlook.MAPIFolder
    Dim ofSubO As Outlook.MAPIFolder
    Dim Subfolder As Outlook.MAPIFolder
    Set NameSpace = ol.GetNamespace("MAPI")
    Dim objItems As Outlook.Items
    Dim olRecip As Outlook.Recipient
    Set olRecip = NameSpace.CreateRecipient("firmaets_email@firmanavn.dk") ' // ALT OK
    Set ofO = NameSpace.GetSharedDefaultFolder(olRecip, olFolderInbox).Folders("01_undermappe").Folders("02_undermappe") ' // ALT OK
    Set Subfolder = ofO

    MsgBox "Mappe der kigges i : " & ofO ' Viser valgt mappe korrekt !

    Dim NewestFile As Object
    Dim Item As Object
    For Each Item In Subfolder.Items
   
        If NewestFile Is Nothing Then
            Set NewestFile = Item
            ElseIf Item.CreationTime > NewestFile.CreationTime Then
            Set NewestFile = Item
        End If
        Next Item
       
    MsgBox "Nyeste fil i mappen " & ofO & " har tidstemplet: " & vbNewLine & vbNewLine & NewestFile.CreationTime ' // ALT OK

    If Not NewestFile Is Nothing Then
    NewestFile.SaveAs "C:\t3mp_z3r0\" & NewestFile.FileName
    End If

    NameSpace.Logoff

--------
Avatar billede Gustav Ekspert
08. november 2023 - 18:30 #1
Manglende rettigheder til mappen C:\t3mp_z3r0\ ?
Prøv en anden mappe.
Hvilken fejl får du?
Avatar billede martens Guru
09. november 2023 - 09:57 #2
Fejlen er Run-time error '438'
Object doesn't support this property or method

Anden mappe ( C:\temp ) er også testet med samme resultat ( jeg tror heller ikke det har noget med dette at gøre...)

Håber der er én eller anden, der har et godt bud på, hvorfor "skidtet" ikke virker...
Avatar billede Gustav Ekspert
09. november 2023 - 10:20 #3
Dim specifikt, og du vil se, at FileName ikke findes. Prøv Subject:
    Dim NewestFile As Outlook.MailItem
    Dim Item As Outlook.MailItem
    For Each Item In Subfolder.Items
 
        If NewestFile Is Nothing Then
            Set NewestFile = Item
            ElseIf Item.CreationTime > NewestFile.CreationTime Then
            Set NewestFile = Item
        End If
        Next Item
     
    MsgBox "Nyeste fil i mappen " & ofO & " har tidstemplet: " & vbNewLine & vbNewLine & NewestFile.CreationTime ' // ALT OK

    If Not NewestFile Is Nothing Then
        NewestFile.SaveAs "d:\temp\" & NewestFile.Subject
    End If
Avatar billede martens Guru
09. november 2023 - 10:57 #4
Det ser mere rigtigt ud nu..

Men nu får jeg en " Run-time error '-21447286788 (800300fc)' "
Avatar billede Gustav Ekspert
09. november 2023 - 11:09 #5
Det kører fint her, så den kan jeg ikke klare for dig.
Avatar billede martens Guru
09. november 2023 - 15:40 #6
Hej Gustav !

1000 tak for hjælpen, nu virker det også her !

Jeg kom til at sidde og kigge på, hvad der egentlig stod i "Subject"
Der var lige ét par ulovlige tegn  a´la  :  << SubjectText >>
Da de " << >> " blev fjernet, spillede det hele som det skulle.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester