Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.lang.visual-basic > #19922

Export mail outlook in Excel

Newsgroups it.comp.lang.visual-basic
Date 2021-09-29 07:29 -0700
Message-ID <e97f08f8-2399-4c0f-8a09-3928750e171dn@googlegroups.com> (permalink)
Subject Export mail outlook in Excel
From Marco75 <marcoporzi75@gmail.com>

Show all headers | View raw


Ciao,
come da oggetto, ho la necessità di esportare le mail di una cartella di Outlook in Excel.
il seguente codice apre Excel ed inserisce le mail e tutto funziona bene ma dovrei modificarlo per ottenere di più:

- Filtrare in modo che esporti solo le mail da leggere ed esportare solo quelle
- Filtrare parte dell'oggetto mail (es.: "Esito non conforme" senza ciò che viene dopo). Questa parte è opzionale perchè se esporto già quelle non lette potrebbe non servire in quanto le non lette sono già quelle che voglio però può essere utile
- Questa la ciliegina sulla torta: prendere dal corpo mail solo alcune righe e posizionarle ognuna in una colonna Excel

questo il codice che ho messo in Outlook 

grazie
Marco


Sub Export_KO()
    
    ufAttendi.Show vbModeless
    
    Dim xlApp As Excel.Application
    Dim xlWb As Excel.Workbook
    
    Dim i As Long 'Ricerca righe
    Dim arrHeader As Variant
    
    Dim olNS As NameSpace
    Dim olInboxFolfer As MAPIFolder
    Dim olItems As Items
    Dim olMailItem As MailItem
    
    arrHeader = Array("Data", "Oggetto", "Non letto")
    
    Set xlApp = CreateObject("Excel.Application")
    xlApp.Visible = True
    Set xlWb = xlApp.Workbooks.Add
    
    Set olNS = GetNamespace("MAPI")
    Set olInboxFolfer = olNS.GetDefaultFolder(olFolderInbox).Folders("Notifiche")
    Set olItems = olInboxFolfer.Items
    
    i = 2
    
    On Error Resume Next
    
    xlWb.Worksheets(1).Range("A1").Resize(1, UBound(arrHeader) + 1).Value = arrHeader
    
    For Each olMailItem In olItems
    
        xlWb.Worksheets(1).Cells(i, "A").Value = olItems(i).CreationTime
        xlWb.Worksheets(1).Cells(i, "B").Value = olItems(i).SenderName
        xlWb.Worksheets(1).Cells(i, "C").Value = olItems(i).Subject
        xlWb.Worksheets(1).Cells(i, "D").Value = olItems(i).UnRead
    
    i = i + 1
    
    Next olMailItem
    
    xlWb.Worksheets(1).Cells.EntireColumn.AutoFit
    
    
     MsgBox ("Fatto!")
    
    
    Set xlWb = Nothing
    Set xlApp = Nothing
    
    Set olItems = Nothing
    Set olInboxFolfer = Nothing
    Set olNS = Nothing

Unload ufAttendi

End Sub

Back to it.comp.lang.visual-basic | Previous | NextNext in thread | Find similar


Thread

Export mail outlook in Excel Marco75 <marcoporzi75@gmail.com> - 2021-09-29 07:29 -0700
  Re: Export mail outlook in Excel Franz_aRTiglio <franzgol@N0SPAMtin.it> - 2021-09-29 21:06 +0200
    Re: Export mail outlook in Excel Marco75 <marcoporzi75@gmail.com> - 2021-09-29 12:58 -0700
      Re: Export mail outlook in Excel Franz_aRTiglio <franzgol@N0SPAMtin.it> - 2021-09-29 22:45 +0200
        Re: Export mail outlook in Excel Marco75 <marcoporzi75@gmail.com> - 2021-09-29 23:44 -0700
          Re: Export mail outlook in Excel Marco75 <marcoporzi75@gmail.com> - 2021-09-30 01:47 -0700

csiph-web