Vba e Outlook 2010



  • Vba e Outlook 2010
    di Mangusta data: 18/12/2012 21:25:30

    Ciao ragazzi oggi una domanda insolita che non so se si può risolvere con una conoscenza di outlook o del vba:

    é possibile salvare le mail in automatico in una cartella definita? magari mail aventi indirizzo e oggetto particolari!
    (Francesco alias Mangusta ^_^ )



  • di Vecchio Frac data: 18/12/2012 21:57:17

    Sì (Outlook + VBA).
    Non chiedi come... ma immagino che ti interessi ^_^
    Comunque te lo dico domani :P
    Qui non ho il codice sottomano: in ufficio sì, già faccio una cosa simile.





  • di Vecchio Frac data: 18/12/2012 22:03:46

    Ok, ho recuperato il codice VBA che uso in ufficio.
    Quando arriva un nuovo messaggio, mi faccio comparire un piccolo msgbox che mi avvisa col titolo del messaggio.
    Non serve a niente, anzi è una seccatura perchè ogni volta devo cliccare su "Ok" :)
    ma è un codice simpatico e ci sono affezionato :P

    Nell'evento ItemAdd puoi fare di tutto: l'Item è il tuo messaggio di posta appena arrivato fresco fresco, ne controlli l'indirizzo o l'oggetto e fai un salvataggio.
     
    'In Questa_sessione_di_outlook
    Public WithEvents myOlItems As Outlook.items
    
    Public Sub Application_Startup()
       ' Reference the items in the Inbox. Because myOlItems is declared
       ' "WithEvents" the ItemAdd event will fire below.
       Set myOlItems = Outlook.Session.GetDefaultFolder(olFolderInbox).items
    
    End Sub
    
    
    Private Sub myOlItems_ItemAdd(ByVal Item As Object)
        MsgBox "E' arrivata nuova posta: " & vbCrLf & Item
    End Sub
    






  • di Vecchio Frac data: 18/12/2012 22:05:40

    Oppure potresti creare una regola... non so Outlook 2010 ma c'è sicuramente la possibilità di spostare gli elementi in una cartella. Se poi intendevi salvare messaggi già arrivati come file .msg esterni (invece che in una cartella di Outlook) allora riprendiamo in mano il discorso del codice...




  • wow
    di Mangusta data: 18/12/2012 22:10:14

    wow 3 messaggio in un attimo!!

    si mi interessa salvare in una cartella dell hd specifica in base all'indirizzo e/o al messaggio (non messaggio in arrivo - intanto imparo questo - al momento dell'invio del mesaggio)

    (cavolo ma in ufficio ne fate di cose con vba)



  • di Vecchio Frac data: 18/12/2012 23:01:01

    Sì in effetti io faccio cose assurde tra Word, Excel e Outlook ma nessuno dice mai grazie ^_^
    Quando invii il messaggio, ok... allora ci risentiamo domani che ho davvero il codice già pronto :)





  • di Vecchio Frac data: 19/12/2012 09:12:39

    Allora, ecco qui. La routine serve a copiare ogni singolo messaggio di una cartella di Outlook (che sia predefinita, o che sia creata dall'utente, bisogna specificarlo, vedi punto 2 sottostante) in una cartella del disco fisso.
    Il codice va incollato in un modulo, come al solito.
    Due sono i punti cui prestare attenzione:
    1) la variabile my_path posta all'inizio: contiene il percorso di destinazione dei file salvati come .msg (la cartella deve esistere quindi va creata prima di lanciare il codice; inoltre attenzione allo slash finale)
    2) bisogna specificare la cartella di Outlook da dove vengono prelevati i file:
    For Each oEmail In GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).items
    (legge tutti i messaggi della casella di Posta in arrivo)

    For Each oEmail In GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Folders("mia sottocartella").items
    (legge tutti i messaggi depositati nella cartella "mia sottocartella" all'interno di Posta in arrivo

    Nella dir specificata in my_path verranno riversati tutti i messaggi in formato .msg con il nome costruito come puoi vedere all'interno del codice.
    Bisogna testare il funzionamento in presenza di messaggi strani, tipo conferme di lettura o messaggi di mancata consegna ed in caso di problemi bisogna intercettarli prescrivendo azioni apposite a seconda del tipo di email (item).
    Se vuoi puoi anche creare una userform che contiene una label come avanzamento di lettura dei messaggi.

     
    Private Sub SaveAllMsg()
    Dim my_path As String
    Dim oEmail As MailItem, s As String, tmp As String, v As Variant
    
        my_path = "G:	est"
        
        'se si vuole, si può creare un piccolissimo userform (il cui nome deve essere userform1)
        'che contiene solo una label (di nome label1) abbastanza lunga da mostrare quel che succede
        'in caso si crei l'userform1, decommentare la riga che segue
        'UserForm1.Show vbModeless
        
        'processa la sottocartella specificata di Outlook, recupera ogni messaggio e lo salva in formato .msg
        'nella cartella in my_path
        For Each oEmail In GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Folders("mia sottocartella").items
            'costruisce il nome del file messaggio da salvare:
            'prime 10 lettere del mittente
            '+ primi 30 caratteri dell'oggetto (depurati dei caratteri non DOS compliant)
            '+ data in formato ISO (aaaammggoomm)
            tmp = oEmail.SenderName
            If InStr(tmp, "@") Then
                s = Mid(Left(tmp, 10), 1, InStr(tmp, "@") - 1)
            ElseIf InStr(tmp, " ") Then
                s = Replace(Left(tmp, 10), " ", "_")
            End If
            tmp = Trim(oEmail.Subject)
            If tmp = "" Then
                tmp = "(senza oggetto)"
            Else
                For Each v In Array(".", ":", "", "/", "?", "*", "+", Chr$(34), "<", ">", "|")
                    tmp = Replace(tmp, CStr(v), "")
                Next
            End If
            If Len(tmp) > 25 Then tmp = Left(tmp, 25) & "..."
            s = s & " - " & tmp & " (" & Format(oEmail.CreationTime, "yyyymmddhhnn") & ").msg"
    
            'in caso sia stata creata la userform di monitoraggio degli eventi, decommentare le due righe che seguono
            'DoEvents
            'UserForm1.Label1.Caption = oEmail
    
            oEmail.SaveAs my_path & s, olMSG
        Next
        'in caso sia stata creata la userform di monitoraggio degli eventi, decommentare la riga che segue
        'Unload UserForm1
        MsgBox "All done."
    End Sub






  • di Mangusta data: 19/12/2012 14:30:37

    Grazie ^_^

    da una occhiatina al codice e ti faccio sapere



  • di Mangusta data: 19/12/2012 19:36:42

    Il codice funzionerebbe! si blocca ad un certo punto

    debug:oEmail.SaveAs my_path & s, olMSG

    secondo me dipende dalla costruzione del nome del file ... o dalla versione 2010 di excel.

    almeno ho qualcosa su cui lavorare.



  • di Vecchio Frac data: 19/12/2012 19:40:46

    Ma non devi usarlo in Excel ^_^
    il punto è olMsg che è un parametro che indica il tipo di file da salvare (olMSG = 3).

    prova a cambiare la riga e dovrebbe funzionare anche in Excel:
    oEmail.SaveAs my_path & s, 3





  • di Mangusta (utente non iscritto) data: 19/12/2012 19:51:16

    oh my god!!! sono fissato con excel!!! ^_^

    il problema è una mail con " ü " devo inserirla tra i caratteri non dos!!

    (tranquillo sto lavorando su outlook! ^_^ )



  • di Mangusta data: 20/12/2012 17:19:49

    Allora il problama non sono i caratteri speciali che elimino nell'array

    For Each v In Array(".", ":", "", "/", "?", "*", "+", Chr$(34), "<", ">", "|", "(", ")", Chr$(252), Chr$(220))

    ultimo pezzo del codice!

    Il problema sta negli spazio di questo oggetto della mail:

    Benachrichtigung über Zustellstatus

    modificando nel codice la parte che riporta l'oggetto con
    Then tmp = Left(tmp, 18) & "..." (modificato il 25 in 18)

    risolvo ma volevo sapere il motivo (temo che sia dovuto agli spazi) e se c'è un altro modo di risolvere




  • di Vecchio Frac data: 20/12/2012 18:53:44

    Quell'array riguarda solo i caratteri speciali che non possono far parte di un nome di file (retaggio del vecchio DOS ma che Windows si porta ancora dietro soprattutto per via della struttura del suo file system).
    Il valore 25 è arbitrario, è solo per prelevare i primi 25 caratteri dall'oggetto, in modo da costruire un nome di file sufficientemente esplicativo.
    Il problema non sono gli spazi... il problema è proprio la u con Umlaut.
    Andrebbe effettuato un controllo con un Array di caratteri speciali da sostituire mediante Replace... io evito se posso i caratteri non ASCII standard per evitare questi problemi.





  • di Vecchio Frac data: 20/12/2012 19:00:42

    Qualcosa di questo genere.
     
    For i = 1 To Len(tmp)
        If UCase(Mid(tmp, i, 1)) Like "[!A-Z0-9]" Then tmp = Replace(tmp, Mid(tmp, i, 1), "")
    Next
    






  • di Mangusta data: 20/12/2012 19:42:15

    in riferimento all'ultimo post che ho scritto per conferma ho provato con un oggetto cosi:

    BenachrichtigungüberZustellstatus

    unendo le parole

    e non ci sono stati problemi - la ü viene tolta come previsto dalla modifica dell' Array!
    per questo ho chiesto lumi



  • di Vecchio Frac data: 20/12/2012 20:37:41

    Bè certo, se la prevedi nell'array di caratteri da escludere funzionerà.
    Ma dovresti pensare di escludere tutti i caratteri aventi ASCII > 128 ed è un po' difficile riproporli in un Array.
    Il metodo che ho illustrato poco fa mi sembra più efficace (scorri la stringa tmp un carattere alla volta, se il carattere in esame non è compreso nell'intervallo A-Z o 0-9 allora eliminalo dalla stringa risultante).
    La tua stringa diventerebbe quindi:
    "Benachrichtigung ber Zustellstatus"
    A voler essere pignoli si dovrebbe trasformare il carattere particolare (accentato o con altri segni diacritici) nel suo corrispondente omofono. Ma la vedo un'operazione complessa e forse solo fine a se stessa.







  • di Mangusta (utente non iscritto) data: 20/12/2012 20:44:05

    Aspetta!! non sono stato chiaro:
    modificando array (hai ragione tu non posso inserire tutti i caratteri)

    con oggetto

    BenachrichtigungüberZustellstatus funziona

    con oggetto

    Benachrichtigung über Zustellstatus errore!!!!

    quindi penso che il problema non si la ü ma gli spazi.





  • di Vecchio Frac data: 20/12/2012 20:49:59

    Sono un po' perplesso...
    Ma il codice si ferma con un messaggio di errore di qualche tipo?
    v è una variabile Variant (quindi contiene tranquillamente un Unicode a due byte), ma non vorrei che la conversione esplicita con CStr(v) facesse casino... adesso mi informo un attimo :)





  • di Mangusta (utente non iscritto) data: 20/12/2012 20:59:14

    Se sei perplesso tu figurati io!!! ^_^

    errore è sempre quello che ho allegato!



  • di Vecchio Frac data: 20/12/2012 21:20:47

    Chissà da quanto tempo l'avevi allegato e io non me ne ero accorto.
    Sto rimbambendo ^_^
    Comunque mo' mi sono incuriosito.. domani in ufficio faccio delle prove :P





  • di Vecchio Frac data: 21/12/2012 08:31:59

    Ho fatto il test.
    A me funziona alla perfezione e riconosce correttamente sia la "ü" che gli spazi...
    A questo punto ti chiedo di inserire un'interruzione sulla riga
    oEmail.SaveAs my_path & s, olMSG
    e quindi di trascrivermi sia il contenuto di "my_path" che di "s" (olMsg dovrebbe valere 3).
    Sempre se questo è uno dei casi sfortunati in cui in Outlook 2010 si verificano delle piccole incompatibilità.






  • di Mangusta (utente non iscritto) data: 21/12/2012 19:31:26

    Scusa Vecchio Frac ma non ho capito cosa intendi

    ' quindi di trascrivermi sia il contenuto di "my_path" che di "s"

    my_path = c: est
    olMSG = 3
    s = cognolatos - R Notifica della ricezion... (201212151309) (un esempio del savataggio fatto prima del erroe in debug)



  • di Vecchio Frac data: 21/12/2012 21:33:26

    Bè, trascrivermi il contenuto delle due variabili, è quello che hai fatto ^_^
    Solo che non vedo niente di strano.
    Tu dici che il salvataggio viene effettuato e *poi* si genera l'errore?
    L'ultima cosa che mi viene in mente è che la "notifica" della ricezione di un messaggio non è un vero messaggio email ma un tipo particolare di messaggio prodotto dal sistema di posta. In Outlook ho sempre avuto questi problemi con le conferme di lettura, per esempio.





  • di Mangusta (utente non iscritto) data: 21/12/2012 21:48:24

    Si in effetti è la notifica automatica che ti dice che il messaggio è stato recapitato! arrivi a quel messaggio e genera l'errore.




  • di Vecchio Frac data: 21/12/2012 22:49:20

    Ho verificato adesso attentamente il modello a oggetti di Outlook (e mi sono anche mandato un messaggio con conferma di lettura, esaminandola... sono proprio malato ^_^).
    Interessante è la proprietà Class (i valori degli oggetti di tipo messaggio li puoi vedere consultando la Guida, per esempio una mail ha olObjectClass = olMail, cioè 43; la conferma di lettura è un olReport, 46)

    Quindi prima di far eseguire il salvataggio che produce errore imposta un punto di interruzione e (nella finestra immediata, Ctrl-G) digita:
    ? oEmail.Class
    e riportami il risultato.

    Così finalmente potremo dire qualcosa del genere:
    If oEmail.Class = ol... Then
    (ignora il codice che segue)
    Else
    (codice normale)
    End If





  • di Mangusta (utente non iscritto) data: 21/12/2012 23:04:50

    Non direi malato ... pittosto preciso e appassionato

    Quindi prima di far eseguire il salvataggio che produce errore imposta un punto di interruzione

    come faccio a stabilire punto interruzione?



  • di Vecchio Frac data: 22/12/2012 09:17:55

    Porta il cursore sulla riga sulla quale vuoi interrompere l'esecuzione.
    Premi il tasto F9.
    La riga viene evidenziata di rosso e compare un pallino rosso alla sinistrta del codice.
    In esecuzione, quella riga diventa gialla, è lì che sta per essere eseguita ma ti consente di valutare le variabili (finestra Immediata, dove puoi scrivere qualunque cosa possa essere eseguita).
    Per riprendere l'esecuzione, F5.
    Il menu Debug ti spiega tutto :)





  • di Mangusta (utente non iscritto) data: 22/12/2012 10:20:11

    ohhhhh ohhhhhh ohhhhh (si prega aggiungere faccina stupore oltre a qualla che sbatte testa)

    fatto risultato :43

    ? oEmail.Class
    43



  • di Mangusta (utente non iscritto) data: 22/12/2012 12:32:27

    Messo interruzione su riga (stessa riga che mi produce errore in debug)

    oEmail.SaveAs my_path & s, olMSG

    poi in immediata scritto

    ? oEmail.Class

    risultato 43



  • di Vecchio Frac data: 22/12/2012 12:37:53

    Crea una nuova cartella di Posta in arrivo, chiamala come vuoi.
    Spostaci dentro quella fatidica email che provoca l'errore.
    Fai ripartire tutto il codice.
    Se non si ferma più il problema è in quella email e dovremo esaminarla in modo diverso.
    Se si ferma ancora vai in Immediata, fai
    ?oEmail
    e segnati il testo che compare (è l'oggetto dell'email problematica), interrompi l'esecuzione del codice, torna in Outlook, sposta quella nuova email problematica nella cartella di prima e fai ripartire il codice.
    Continua così finchè non avrai più interruzioni dovute a errori.
    Alla fine avrai delle email "problematiche" che andranno esaminate singolarmente.





  • di Mangusta (utente non iscritto) data: 22/12/2012 19:48:59

    Lo già fatto ho setacciato la cartella mail per mail e ho concluso che :
    1 sola mail produce errore

    ho preso la stessa mail e l'ho rinviata variando : oggetto , corpo messaggio

    il problema era nell'oggetto : Benachrichtigung über Zustellstatus
    (mail automatica di conferma ricezione)

    ho tolto gli spazi ottenendo
    BenachrichtigungüberZustellstatus --------> nessun errore!!

    modificato (25 in 18) in Then tmp = Left(tmp, 18) & "..." ---> no errore anche se mantengo spazi nell'oggetto

    prova inviarti mail con questo oggetto e vediamo se da te passa



  • di Vecchio Frac data: 22/12/2012 23:13:21

    Fatto.
    Tutto regolare
    Ho lasciato l'oggetto "Benachrichtigung über Zustellstatus", ho lasciato Left(tmp, 25), nessun problema nel salvataggio.
    Mi arrendo ^_^
    Imposta un On Error che conservi in una stringa eventuali messaggi non salvati, oppure che tenti di salvare il messaggio facendo un Left(tmp, 18) e ritorni al momento dell'errore con Resume Next.
    Altro purtroppo non saprei dirti.





  • di Mangusta (utente non iscritto) data: 22/12/2012 23:33:02

    I misteri di windows? un nuovo mistero maya? Roberto Giacobbo riuscirà a rendere tutto più incomprensibile?

    mha chi lo sa!!!! dipende versione outlook?

    qui l'unica cosa certa è che manca icona che sbatte la testa!!!



  • di Mangusta (utente non iscritto) data: 02/01/2013 20:46:03

    Oggi sono distrutto e approffitto della tua competenza Vecchio Frac per evitare un ulteriore trauma al mio unico neurone.

    adesso si ferma al next con errore : tipo non corrispondente!

    idee prima di passare mail per mail?



  • di Vecchio Frac data: 02/01/2013 22:23:46

    Bisogna analizzare oEmail, e vedere di che tipo è e cosa contiene.





  • di Mangusta (utente non iscritto) data: 03/01/2013 20:03:02

    Temevo questa riposta ^_^

    questo fine settimana !!!!!



  • di Mangusta (utente non iscritto) data: 03/01/2013 20:43:42

    Scrivo qui perchè è una sciocchezza e non serve aprire altro argomento:

    ha senso questo banale ciclo per evidenziare tutti i valori uguali?

    nel mio ragionamento ho detto:

    scorri valore di ogni cella nell'intervallo se ne trovi di uguali evidenzia
    (in sintesi)
    è sbagliato come ragionamento?
     
    For Each cella In rng
    if cella.Offset(0, 5) = cella.Offset(0, 5) then
    cella.Offset(0, 5).Interior.ColorIndex = vbYellow
    end if
    Next



  • di Vecchio Frac data: 03/01/2013 21:54:43

    Dipende :)
    cit. " se ne trovi di uguali "
    ---> ... uguali a cosa? a se stessi? Per come lo hai scritto, il codice è inutile, perchè la condizione è sempre vera e tanto vale non scriverla.
    Tu forse volevi scorrere cella per cella ed evidenziare i duplicati, cioè *tutti* gli elementi uguali.
    Allora devi partire dalla prima cella, tenerla come valore base, e scorrere da quella cella il resto del range per confrontare ogni valore successivo con quello, e tingere di giallo le celle uguali ad essa. Ripeti il procedimento dalla cella successiva, evitando il controllo sulle celle già passate in rassegna (cioè che hanno già il fondo giallo).
    Non è complicato da implementare, l'avevo fatto qualche tempo fa in non so più quale discussione.

    p.s. valeva comunque la pena di aprire una nuova discussione, anche per permettere le ricerche future. Mauro ci permette di aprire discussioni gratis :)





  • di Mangusta (utente non iscritto) data: 05/01/2013 15:08:17

    penso si sia capito che ho passato il sabato mattina a guardarmi il vba!! ^_^

    ho fatto una cosa riprovevole: visto che mi pare che i problemi nascano da eccezzioni (oggetto mancante caratteri strani) come faccio a gestire l'errore?
    qualcosa del tipo

    oEmail.SaveAs my_path & s, olMSG
    On Error Resume Next
    next

    non funziona tranquillo !!! non vorrei che qualcuno pensasse che per una volta ne prendo una giusta





  • di Vecchio Frac data: 05/01/2013 18:11:32

    Io direi che On Error va messo prima del ciclo For principale.
    E va indicata una trappola per errori: quindi "On Error Goto gest_err"
    Così quando si scatena l'errore lo puoi gestire dalla parte del codice che etichetterai con gest_err.
    La struttura del codice diventerà questa:

     
    Private Sub SaveAllMsg()
    Dim ...
    
        ...
        
        On Error Goto gest_err
        
        For Each oEmail In GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Folders("mia sottocartella").items
        ...
            oEmail.SaveAs my_path & s, olMSG    ' se si evrifica un errore qui, salta a gest_err
        Next
        ...
        MsgBox "All done."
        Exit Sub    ' importante! altrimenti viene eseguito quanto segue
    
    gest_err:
        'gestiamo l'errore senza interrompere il programma
        'visualizza un box informativo
        'potrebbe anche creare un file dove scrivere il codice d'errore e la sua descrizione
        MsgBox "Si è verificato un errore: " & err.number & " - " & err.description 
        On Error Resume Next
    End Sub






  • di Mangusta (utente non iscritto) data: 06/01/2013 10:49:24

    Forse sbaglio ma la mia idea era quella di ignorare la mail che genera l'errore e di continuare con le altre.
    invece con il codice che mi hai passato si ferma lo stesso e non prosegue.



  • di Vecchio Frac data: 06/01/2013 12:50:32

    E' vero, ho dato i numeri ieri.
    E' chiaro che l'ultima istruzione deve essere solo "Resume Next" per poter riprendere da dove si è verificato l'errore:

    gest_err:
    ...
    MsgBox "Si è verificato un errore: " & err.number & " - " & err.description
    Resume Next
    End Sub





  • di Mangusta (utente non iscritto) data: 06/01/2013 19:59:17

    Caro Vecchio Frac non ne usciamo! clicco il codice modificato ! in effetti mi visualizza 2 errori !
    il primo già chiarito sul fatto della u e degli spazi.
    il secondo da chiarire (presumo sia mail con mancanza di oggetto)

    su 88 mail se ne salvano solo 16!
    secondo me si blocca ancora quando incontra un errore!
     
    Private Sub SaveAllMsg()
    Dim my_path As String
    Dim oEmail As MailItem, s As String, tmp As String, v As Variant
    
        my_path = "c:	est"
        
        'se si vuole, si può creare un piccolissimo userform (il cui nome deve essere userform1)
        'che contiene solo una label (di nome label1) abbastanza lunga da mostrare quel che succede
        'in caso si crei l'userform1, decommentare la riga che segue
        'UserForm1.Show vbModeless
        
        'processa la sottocartella specificata di Outlook, recupera ogni messaggio e lo salva in formato .msg
        'nella cartella in my_path
        
         On Error GoTo gest_err
        For Each oEmail In GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Items
            'costruisce il nome del file messaggio da salvare:
            'prime 10 lettere del mittente
            '+ primi 30 caratteri dell'oggetto (depurati dei caratteri non DOS compliant)
            '+ data in formato ISO (aaaammggoomm)
            tmp = oEmail.SenderName
            If InStr(tmp, "@") Then
                s = Mid(Left(tmp, 10), 1, InStr(tmp, "@") - 1)
            ElseIf InStr(tmp, " ") Then
                s = Replace(Left(tmp, 10), " ", "_")
            End If
            tmp = Trim(oEmail.Subject)
            If tmp = "" Then
                tmp = "(senza oggetto)"
            Else
                For Each v In Array(".", ":", "", "/", "?", "*", "+", Chr$(34), "<", ">", "|", "(", ")", Chr$(252), Chr$(220))
                    tmp = Replace(tmp, CStr(v), "")
                Next
            End If
            If Len(tmp) > 25 Then tmp = Left(tmp, 25) & "..."
            s = s & " - " & tmp & " (" & Format(oEmail.CreationTime, "yyyymmddhhnn") & ").msg"
    
            'in caso sia stata creata la userform di monitoraggio degli eventi, decommentare le due righe che seguono
            'DoEvents
            'UserForm1.Label1.Caption = oEmail
    
            oEmail.SaveAs my_path & s, olMSG
            
        Next
        'in caso sia stata creata la userform di monitoraggio degli eventi, decommentare la riga che segue
        'Unload UserForm1
       Exit Sub    ' importante! altrimenti viene eseguito quanto segue
       
    gest_err:
        'gestiamo l'errore senza interrompere il programma
        'visualizza un box informativo
        'potrebbe anche creare un file dove scrivere il codice d'errore e la sua descrizione
        MsgBox "Si è verificato un errore: " & Err.Number & " - " & Err.Description
        Resume Next
    End Sub
    



  • di Vecchio Frac data: 06/01/2013 21:14:33

    cit. " su 88 mail se ne salvano solo 16! "
    ---> cioè? ne vengono salvate così poche?
    Le prove che ho fatto io (Win XP, Outlook 2003) non hanno dato problemi con diversi tipi di mail.
    Mi prudono le mani... e pensa un po', vorrei proporti una sessione di TeamViewer ^_^





  • di Mangusta (utente non iscritto) data: 08/01/2013 11:22:45

    se non fossero mail personali e condati sensibili avresti via libera!!!



  • di Vecchio Frac data: 08/01/2013 13:42:48

    Lo credo bene e infatti non insisto.
    Dobbiamo ragionare sui tipi di mail che non vengono processate.