email vba



  • email vba
    di Eolo (utente non iscritto) data: 14/12/2013 13:16:42

    Ciao a tutti! Ho bisogno di una mano. Vorrei una macro che mi inviasse una mail ad una lista di destinatari che leggo in un foglio (email) diciamo da c3 a seguire. Cosa mi consigliate? Grazieee!



  • di totygno (utente non iscritto) data: 14/12/2013 13:45:07

    Di fare una ricerca nello storico... Se ne è parlato più e più volte



  • di Eolo (utente non iscritto) data: 14/12/2013 14:44:32

    Ciao totygno! Grazie della risposta.
    Ovviamente avevo già ricercato nello storico purtroppo però non sono riuscito a trovare ciò che mi serve.
    In realtà ho scritto il codice per la macro e funziona però il mio problema è che non riesco ad inviare direttamente l'email in maniera automatica. Infatti apre outlook inserisce il destinatario e l'oggetto il testo ma non si invia automaticamente.
    avete qualche idea? Grazie



  • di scossa data: 14/12/2013 15:18:52

    Se non mostri il codice che usi è difficile risponderti.



  • di Eolo (utente non iscritto) data: 14/12/2013 15:43:26

    Si certo perdonami.. Non conosco bene visual basic sinceramente.. Comunque questo è il codice che al momento sto utilizzando. Ciò che vorrei fare in realtà è creare una unica email con più destinatari.. non tante quanti sono i destinatari.. perchè tanto il contenuto è sempre lo stesso. E poi vorrei che inviasse automaticamente non si bloccasse una volta aperta l'email.. Grazie mille per la tua disponibilità.
     
    Sub email()
    
        Dim OutApp As Object
        Dim OutMail As Object
        Dim EmailAddr As String
        Dim Subj As String
        Dim BodyText As String
        Sheet1.Select
    
    ' RR contiene il numero di utenti cui inviare le e-mail (1 per utente)
        RR = Range("B" & Rows.Count).End(xlUp).Row
    ' I dati iniziano dalla seconda riga
        For I = 2 To RR
            Set OutApp = CreateObject("Outlook.Application")
            Set OutMail = OutApp.CreateItem(0)
            With OutMail
                      ' La colonna "B" contiene gli indirizzi e-mail dei vari destinatari
                      .To = Cells(I, 2)
                      ' La colonna "C" contiene l'indirizzo e-mail in "Copia per Conoscenza"
                      .CC = Cells(I, 3)
                      ' Eventuale e-mail in "Copia per conoscenza nascosta"
                      .BCC = ""
                      ' La colonna "D" contiene l'oggetto della e-mail
                      .Subject = Cells(I, 4)
                      ' La colonna "E" contiene l testo della e-mail
                      .Body = Cells(I, 5)
                      ' La colonna "F" contiene il percorso dove si trova il file da allegare
                      ' La colonna "G" contiene il nome del file da allegare
                      .Attachments.Add (Cells(I, 6) & Cells(I, 7))
                      .Display
            End With
            Set OutMail = Nothing
            Set OutApp = Nothing
            Application.SendKeys "%a"
        Next I
    
    End Sub



  • di scossa data: 14/12/2013 15:55:32

    cit. Eolo: "....il mio problema è che non riesco ad inviare direttamente l'email in maniera automatica."

    Questo lo risolvi sostituendo .Display con .Send ma difficilmente l'email partirà senza tuo intervento, perché si aprirà una finestra di sistema (antispamming) che ti informerà del tentativo di invio della mail e ti chiedera di confermare l'invio.

    Per fare una sola mail con più destinatari, devi fare il ciclo SOLO per creare una stringa unica con gli indirizzi di tutti i destinatari, separati da un ; quindi assegnare .To = stringaindirizzi.



  • di Eolo (utente non iscritto) data: 14/12/2013 16:03:20

    Grazie mille scossa! :) non sono molto pratico di VBA! mi puoi dire come leggo tutti gli indirizzi? scrivimi anche solo quella riga di codice, sai per me sarebbe di grande aiuto per imparare.. continuo a ragionare come se fossi in java o c++ e quindi penso che la mia colonna sia un vettore e mi serve un ciclo For per scorrerla.. correggimi se mi sbaglio..
    Per quanto riguarda il filtro antispam dovrebbe essere risolto con quella riga Application.SendKeys "%a".. almeno così ho letto in giro.. :)
    Grazie ancora



  • di scossa data: 14/12/2013 16:48:59

    cit.: "Per quanto riguarda il filtro antispam dovrebbe essere risolto con quella riga Application.SendKeys "%a".. almeno così ho letto in giro.. :)"

    Credi male

    Non è un alert di Excel.

    La mia esperienza al riguardo è con Excel 2003 e Win XP, e l'unica soluzione era quella di usare ClickYesForMe.
    Leggi questo thread:
    h t t p ://groups.google.com/forum/#!topic/microsoft.public.it.office.excel/rPt_4cNvMSg

     
       For I = 2 To RR
                     sDestinatari  = sDestinatari & Cells(I, 2).Value
       Next I
    



  • di gaetanopr data: 14/12/2013 17:12:44

    Ciao scossa hai dimenticato ";"
    sDestinatari = sDestinatari & Cells(I, 2).Value & ";"



  • di scossa data: 14/12/2013 17:30:25

    Giusto, grazie per la correzione.



  • di Eolo (utente non iscritto) data: 14/12/2013 17:48:44

    Grazie mille ragazzi! :) provvederò a leggere il thread!!