Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [VBA] EXCEL - OUTLOOK - funzionamento macro

    Salve, ci provo con un nuova domanda.
    Macro sempre passata da sede estera,senza grandi spiegazioni.
    Premetto non ho mai lavorato su macro excel che si collegano ad outlook quindi non conosco le variabili , sto' cercando di documentarmi ma non trovo granche'.

    Da che ne so' la macro dovrebbe estrarre da alcune mail dell'utente "pippo paperino"
    gli allegati e le informazioni e salvarli in un file excel.

    qualche buon anima saprebbe darmi lumi sulle righe del codice che ho commnetato sotto (in italiano) per capire se sto' ragionando giusto o se sono proprio fuori strada?
    Ho immesso il nome del mio utente (pippo paperino) ma pare che la macro esca sempre alla riga commentata sotto.

    codice:
    Sub Get_utente_azienda_inbox_folder()
    
        Dim myNameSpace As Outlook.Namespace
        Dim myInspector As Outlook.Inspector
    
        Dim myOlApp As Outlook.Application
        Dim myFolder As Outlook.MAPIFolder
    
        Dim myFolders As Outlook.Folders
        Dim myOlItem As Object
        Dim MyItem As Object
    
        Dim myattachment As Outlook.Attachment
    
        Dim myOlattachments As Outlook.Attachments
        Dim myattachments As Outlook.Attachments
        Dim myOlattachment As Outlook.Attachment
        
        Dim myOlInspector As Outlook.Inspector
    
        Dim myInbox As Outlook.MAPIFolder
        Dim myDestFolder As Outlook.MAPIFolder
        Dim mySourceFolder As Outlook.MAPIFolder
        Dim myRecipient As Outlook.Recipient
            
        Dim lgIndex As Long
        Dim lgIndex1 As Long
        
        Set myOlApp = CreateObject("Outlook.Application")
        Set myNameSpace = myOlApp.GetNamespace("MAPI")
        Set myInspector = myOlApp.ActiveInspector
        Set myFolder = myNameSpace.GetDefaultFolder(olFolderInbox)
          
    'qui dovrebbe collegarsi alla casella di posta del mio utente pippo paperino,giusto?
        Set myRecipient = myNameSpace.CreateRecipient("pippo paperino") 
    'cosa fa' la riga sotto?
        myRecipient.Resolve
          
    ' ####  dopo questa riga la mia macro va direttamente alla fine perche?? ###
        If myRecipient.Resolved Then
        
            Set myFolder = myNameSpace.GetSharedDefaultFolder(myRecipient, olFolderInbox)
            Set myDestFolder = myNameSpace.GetSharedDefaultFolder(myRecipient, olFolderInbox)
    
            myFolder.DisplaymyFolder.Display
            
            
            Set myDestFolder = myFolder.Folders("azienda-Archive")
            Set mySourceFolder = myFolder.Folders("azienda")
    
            
            Debug.Print mySourceFolder.Name
        
    'For every entry ( email ) in the sourcefolder Inbox ==> pippo paperino\azienda
            For lgIndex = mySourceFolder.Items.Count To 1 Step -1
                Set myOlItem = mySourceFolder.Items(lgIndex)
                myOlItem.Display
                Set myInspector = myOlApp.ActiveInspector
                Set MyItem = myInspector.CurrentItem
                
                Debug.Print MyItem
                
                ' check for the defined email with attachment on email-subject
                If InStr(1, MyItem.Subject, "Comunicazione modifica") > 0 Then
                
                    Set myattachments = myInspector.CurrentItem.Attachments
                    Debug.Print myattachments.Count
                    
                    If myattachments.Count > 0 Then
                    
                        ' For every attachment in a email
                        For lgIndex1 = 1 To myattachments.Count
                            Debug.Print myattachments.Item(lgIndex1).DisplayName
                            Set myattachment = myattachments.Item(lgIndex1)
                            
                            ' Save attachment to filesystem
    
                            myattachment.SaveAsFile ("C:\dati\mail\" & myattachment.DisplayName)
                        Next lgIndex1
                    End If
                    
                    ' Close email
                    MyItem.Close olSave
                    
                    ' Move email to destination folder ==> pippo paperino\azienda-Archive
                    MyItem.Move myDestFolder
                Else
                    If InStr(1, MyItem.Subject, "Lancio ") > 0 Then
                        MyItem.Close olSave
                        MyItem.Move myDestFolder
                    Else
                        MyItem.Close olSave
                    End If
                End If
                Set MyItem = Nothing
            Next lgIndex
            MsgBox "The folder 'azienda' was worked !"
        End If
    End Sub

  2. #2
    il "resolve" dovrebbe trovare il mio utente (pippo paperino) nei miei contatti?
    Per caso e' necessario avere installato ms exchange per far girare questa macro quindi potrebbe essere questo il motivo per cui non trova i contatti? (in azienda non abbiamo exchange)

    -----
    OK , 1° PARTE RISOLTA.
    ho inserito al posto del nome dell'utente direttamente l'indirizzo mail e la macro stavolta e' andata avanti.
    ora mi da' un errore di runtime (operazione non riuscita, impossibile trovare un oggetto) subito dopo a questa riga:
    codice:
    Set myFolder = myNameSpace.GetSharedDefaultFolder(myRecipient, olFolderInbox)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.