Salve a tutti, ho fatto questa macro in VBA per Outlook:

codice:
Sub Sposta_Mail()

    Dim Conn As ADODB.Connection
    Dim StringaConn As String
    Dim Rs As ADODB.Recordset
    
    Set Conn = New ADODB.Connection
    Set Rs = New ADODB.Recordset
    StringaConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MIO_DATABASE.mdb;Persist Security Info=False"
    Conn.Open StringaConn
    
    Set Rs = Conn.Execute("SELECT * FROM Codici")
    
    Do While Not Rs.EOF

        Dim objFolder As Outlook.MAPIFolder, objInbox As Outlook.MAPIFolder
        Dim objNS As Outlook.NameSpace, objItem As Outlook.MailItem

        Dim FSO As FileSystemObject
    
        Set objNS = Application.GetNamespace("MAPI")
        Set objInbox = objNS.GetDefaultFolder(olFolderInbox)
        
        Set FSO = New FileSystemObject

        For Each objItem In Application.ActiveExplorer.Selection
            If (FSO.FolderExists("Posta in arrivo\" & Rs.fields("Codice").Value)) = False Then
                FSO.CreateFolder ("Posta in arrivo\" & Rs.fields("Codice").Value)
            End If
            If Mid(objItem.SenderName, 3, 7) = Rs.fields("Codice").Value Then
                Set objFolder = objInbox.Folders(Rs.fields("Codice").Value)
                objItem.Move objFolder
            End If
        Next
        
        Set FSO = Nothing
        Set objItem = Nothing
        Set objFolder = Nothing
        Set objInbox = Nothing
        Set objNS = Nothing

    Rs.MoveNext
    Loop

End Sub
Questo codice dovrebbe:

1) Controllare se una detemrinata cartella esiste, se non esiste la crea.
2) Mettere dentro la relativa cartella i corrispondenti mittendi.

esempio

Cartella 1234 dentro ci dete mettere 1234@email.it

PROBLEMI:

1) non crea la cartella, probabilmente perchè non si può inq aundo sul PC non esiste l'indirizzo c:\programmi\outlook\posta in arrivo
2) la esegue sol oquando lanciata, non c'è la possibilità di inserire un timer in outlook?

Grazie per l'attenzione