Avatar billede per2edb Praktikant
07. juli 2014 - 15:47 Der er 7 kommentarer og
1 løsning

finde alle vedhæftede pdf filer i Outlook

Jeg har følgende koder til at finde alle vedhæftede pdf filer i Outlook

Det er med:
If myFolder.Items(A).UnRead = True Then .....
lavet til at søge blandt ulæste mailer
Jeg ønsker det ændret til aktivered/highlightet mail

Kan det være noget med If myFolder.Items(A).????? = True Then .....
Kan i hjælpe!
-------------------------- Koder------------------

Dim myFolder As Outlook.MAPIFolder
    Dim myOlApp As Outlook.Application
    Dim myItem  As Outlook.MailItem
    Dim A As Integer
    Dim B As Integer
    Dim strPath As String
    Dim The_Filename As String
   
    Set myOlApp = CreateObject("Outlook.application")
    Set myFolder = myOlApp.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
    Set myItem = myOlApp.CreateItem(olMailItem)
 
        For A = 1 To myFolder.Items.Count
            'If myFolder.Items(A).UnRead = True Then
                If myFolder.Items(A).Attachments.Count <> 0 Then
                    For B = 1 To myFolder.Items(A).Attachments.Count
                        If UCase(Right(myFolder.Items(A).Attachments(B).DisplayName, 4)) = ".PDF" Then
                            strPath = CurrentProject.Path & "\Documentation"
                            The_Filename = strPath & "\" & myFolder.Items(A).Attachments(B).DisplayName
                            myFolder.Items(A).Attachments(B).SaveAsFile The_Filename
       
                        End If
                    Next
                End If
            'End If
        Next
Avatar billede terry Ekspert
07. juli 2014 - 18:52 #1
If Outlook needs to be open and mail items selected then why don't you implement some code in Outlook to find your PDF documents?
Avatar billede per2edb Praktikant
07. juli 2014 - 20:03 #2
Vi ønsker ikke at ændre i Outlook af mange årsager.
Opgaven er bunden som jeg har beskrevet den.
Avatar billede fdata Forsker
08. juli 2014 - 16:40 #3
Prøv denne her:

Sub Test()
  Dim myFolder As Outlook.MAPIFolder
  Dim myOlApp As Outlook.Application
  Dim myItem  As Outlook.MailItem
  Dim A As Integer
  Dim B As Integer
  Dim strPath As String
  Dim The_Filename As String
 
  Set myOlApp = CreateObject("Outlook.application")
  Set myFolder = myOlApp.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)

  Set myItem = myOlApp.ActiveExplorer.Selection.Item(1)

  If myItem.Attachments.Count <> 0 Then
    For B = 1 To myItem.Attachments.Count
      If UCase(Right(myItem.Attachments(B).DisplayName, 4)) = ".PDF" Then
        strPath = CurrentProject.Path & "\Documentation"
        The_Filename = strPath & "\" & myItem.Attachments(B).DisplayName
        myItem.Attachments(B).SaveAsFile The_Filename
      End If
    Next
  End If
End Sub
Avatar billede per2edb Praktikant
08. juli 2014 - 18:04 #4
1000 tak fdata det virker perfekt
Avatar billede per2edb Praktikant
08. juli 2014 - 18:20 #5
Lige en lille ting:
Når der ikke er aktiveret en outlook mail opstår der fejl
myItem.Attachments.Count kan ikke vise der ikke er aktiveret noget.
Har du en løsning
Avatar billede fdata Forsker
08. juli 2014 - 19:42 #6
Yep. Så kan vi lige så godt også tjekke, om Outlook overhovedet er startet (ret selv evt. MsgBox teksterne):

Sub Test()
  Dim myFolder As Outlook.MAPIFolder
  Dim myOlApp As Outlook.Application
  Dim myItem  As Outlook.MailItem
  Dim A As Integer
  Dim B As Integer
  Dim strPath As String
  Dim The_Filename As String
  Dim ObjOutlook As Object

  On Error Resume Next
  Set ObjOutlook = GetObject(, "Outlook.Application")
  On Error GoTo 0

  If ObjOutlook Is Nothing Then
    MsgBox "Outlook er ikke startet", vbInformation, "OBS"
    Exit Sub
  End If
 
  Set myOlApp = CreateObject("Outlook.application")
  Set myFolder = myOlApp.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)

  On Error GoTo ErrorTrap
  Set myItem = myOlApp.ActiveExplorer.Selection.Item(1)
  On Error GoTo 0

  If myItem.Attachments.Count <> 0 Then
    For B = 1 To myItem.Attachments.Count
      If UCase(Right(myItem.Attachments(B).DisplayName, 4)) = ".PDF" Then
        strPath = CurrentProject.Path & "\Documentation"
        The_Filename = strPath & "\" & myItem.Attachments(B).DisplayName
        myItem.Attachments(B).SaveAsFile The_Filename
      End If
    Next
  End If
  Exit Sub

ErrorTrap:
  MsgBox "Der er ikke markeret en email", vbInformation, "OBS"
  Err.Clear
  On Error GoTo 0
End Sub
Avatar billede per2edb Praktikant
08. juli 2014 - 19:48 #7
OK Tak for hjælpen
Avatar billede fdata Forsker
08. juli 2014 - 21:31 #8
Velbekomme og tak for point :O)
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
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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