su Office 2016 non parte la macro.
[. . . .]
Hai qualche idea?
Strano, perche' io l'ho sviluppata e collaudata su OL2016...
"Non accade niente" e' il peggior modi di dire quel che accade...Mi confermi che all'avvio ti chiede di abilitare le macro? Mi confermi che il codice e' stato inserito in un Modulo standard e non in ThisOutlookSession? Come (con quali comandi) avvii la macro?
Do' per scontato che con "non accade nulla" intendi anche che le mail inserite nel "folder DaProcessare" rimangano lì e non vengano spostate nel "folder Processate" (me lo confermi?)
La macro dovrebbe avere un messaggio finale, non so se nel tuo caso esce o non esce; me lo dici?
Se esce, mi dici quale e' il messaggio? (meglio se fai uno screenshot e pubblichi quello).
Poi tu sai che la macro crea nella directory BasePath = "C:\PROVA" (o come l'hai definita nella macro) una subdirectory nel formato aa-mm-gg (quindi 18-02-22 se la macro la esegui oggi): e' stata creata o non e' stata creata? Al suo interno (se e' stata creata) ci sono dei file?
Se trovi la subdirectory ma senza nessun file allora io controllerei che l'albero dei folders da processare sia aderente con la tua installazione; il tutto e' descritto nelle seguenti istruzioni
- Codice: Seleziona tutto
Set daProc = myNameSpace.Folders("Cartelle personali").Folders("Posta in arrivo").Folders("DaProcessare") '<<<Folder di origine
Set Procd = myNameSpace.Folders("Cartelle personali").Folders("Posta in arrivo").Folders("Processate") '<<< Folder si destinazione
Che puntano rispettivamente a
Cartelle personali / Posta in arrivo /DaProcessare
Cartelle personali / Posta in arrivo /ProcessatePer capire come e' fatto l'albero dei tuoi folder, sperando che siano max a 3 livelli, usa questa macro:
- Codice: Seleziona tutto
Sub folderTree()
Dim olApp As New Outlook.Application
Dim myNameSpace As Outlook.Namespace
Dim I As Long, J As Long, K As Long
Set myNameSpace = olApp.GetNamespace("MAPI")
For I = 1 To myNameSpace.Folders.Count
Debug.Print I, myNameSpace.Folders(I).Name
For J = 1 To myNameSpace.Folders(I).Folders.Count
Debug.Print I, J, myNameSpace.Folders(I).Folders(J)
For K = 1 To myNameSpace.Folders(I).Folders(J).Folders.Count
Debug.Print I, J, K, myNameSpace.Folders(I).Folders(J).Folders(K).Name
Next K
Next J
Next I
End Sub
Eseguila una volta; poi all'interno del vba di outlook premi Contr-g per aprire la "finestra Immediata" e qui troverai l'organizzazione dei tuoi folder.
Se non e' coerente con quanto dichiarato nelle due istruzioni
Set xxxx = myNameSpace.Folders(etc etc allora aggiorna le istruzioni.
Se invece e' coerente allora esegui "passo passo" le istruzioni della Sub WorkAll, usando F8: metti il cursore del mouse su una qualsiasi istruzione, premi F8; l'istruzione che va a essere eseguita viene evidenziata in giallo.
Quando arrivi all'istruzione
For J = daProc.Items.Count To 1 Step -1 controlla se entra nel ciclo o lo salta; se ci entra, quando arrivi all'istruzione
If TypeOf myMex Is MailItem Then controlla se entra nelle istruzioni successive o le skippa.
Come vedi ho scritto 20 volte quello che hai scritto tu, non vorrei che sembri io piu' di te interessato a risolvere, quindi mi aspetto una risposta ampia ed esaustiva...