Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di StegcO
    Registrato dal
    Aug 2008
    Messaggi
    371

    [VBA] Outlook, Crea Cartella e Riempila

    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

  2. #2
    Approfitto della tua esperienza perchè anch'io sto cercando di connettere outlook con un db access. Io in realtà ho la necessità di fare append in una tabella di alcuni valori ricevuti via mail.
    Vengo al dunque...io non riesco a fare la connessione in VBA verso il DB Access.
    Ho provato la arte del tuo codice e mi dà errore già al primo passo:
    Dim Conn As ADODB.Connection
    L'errore mi dice errore di compilazione, tipo definito dall'utente non definito.
    Riesci ad aiutarmi?
    Io utilizzo outlook2007.
    ciao
    roberto

  3. #3
    Utente di HTML.it L'avatar di StegcO
    Registrato dal
    Aug 2008
    Messaggi
    371


    Tornando IT, nessuno sà se è possibile creare in automatico sotto cartelle di "posta in arrivo"?

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.