Condividi:        

Inviare mail tramite Excel con Outlook

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Inviare mail tramite Excel con Outlook

Postdi ilnonno13 » 25/02/14 16:23

Salve ragazzi,

come da oggetto ho bisogno di una macro che prenda tutti di indirizzi e-mail (circa un migliaio) presenti ina un determinata colonna e che invii la stessa mail, in conoscenza nascosta, a tutti gli indirizzi appunto presenti in colonna.

Ho dato una sbirciata al forum prima di scrivere, ma non ho trovato una soluzione che alla fine facesse pienamente quel che mi occorre.
S.O. W7; Office 2007
ilnonno13
Utente Junior
 
Post: 22
Iscritto il: 22/11/13 11:48

Sponsor
 

Re: Inviare mail tramite Excel con Outlook

Postdi ricky53 » 25/02/14 16:43

Ciao,
però avrai sicuramente trovato un buon inizio perchè di discussioni relative all'invio di e-mail mediante excel ce ne sono tante.

Scegline una che è più vicina a quello che ti occorre e proponila al forum, insieme la si adatterà.
Occorrerà un ciclo che scorrendo l'elenco ove hai gli indirizzi e-mail componga una stringa costituita da tutti gli indirizzi e poi associare questa stringa alla "ccn" di outlook
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Inviare mail tramite Excel con Outlook

Postdi ilnonno13 » 25/02/14 16:47

La cosa che trovo che più si avvicina è questa...

Sub Invia_Email_Ultima_Buona()

Dim OutApp As Object

Dim OutMail As Object

Dim EmailAddr As String

Dim Subj As String

Dim BodyText As String



Foglio1.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 ove 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


Cosa succede però... Vengono inviate tante mail quanti sono gli indirizzi presenti nell'elenco. A me occorre una sola mail con tutti gli indirizzi in elenco.
Seconda cosa sarebbe anche opportuno poter impostare un corpo della mail in automatico...
S.O. W7; Office 2007
ilnonno13
Utente Junior
 
Post: 22
Iscritto il: 22/11/13 11:48

Re: Inviare mail tramite Excel con Outlook

Postdi ilnonno13 » 25/02/14 16:59

Tra parentesi credo sia una cosa scritta proprio da te, Ricky...

La macro che ti ho incollato cmq crea tante e-mail quanti sono gli indirizzi... Ma non le invia...
S.O. W7; Office 2007
ilnonno13
Utente Junior
 
Post: 22
Iscritto il: 22/11/13 11:48

Re: Inviare mail tramite Excel con Outlook

Postdi ricky53 » 25/02/14 17:29

Ciao,
il codice era stato scritto per Office 2003.
Tu hai una versione successiva?

Con l'occasione ti chiedo di aderire alla campagna "VERSIONE OFFICE"
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Inviare mail tramite Excel con Outlook

Postdi ilnonno13 » 25/02/14 17:33

Office 2007.
S.O. W7; Office 2007
ilnonno13
Utente Junior
 
Post: 22
Iscritto il: 22/11/13 11:48

Re: Inviare mail tramite Excel con Outlook

Postdi ricky53 » 25/02/14 19:44

Ciao,
l'istruzione
Codice: Seleziona tutto
Application.SendKeys "%a"
serviva ad inviare il messaggio senza far comèarire un avviso di Outlook

Vado a memoria perchè qui non ho la possibilità di provare.
Toglila e :
al posto di
Codice: Seleziona tutto
.Display
End With


utilizza
Codice: Seleziona tutto
.Send
End With
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Inviare mail tramite Excel con Outlook

Postdi Anthony47 » 25/02/14 23:52

C' e' un messaggio di Ricky prima di questo.

Pero', scusate, stiamo parlando di automatizzare l' invio di 1 dico 1 mail?
Calcoli con formule l' indirizzo di tutti i destinatari, separandoli col segno ", "
Es il primo indirizzo e' in C2; in D2 scrivi
Codice: Seleziona tutto
=C2

In D3 usi
Codice: Seleziona tutto
=D2&SE(C3<>"";", "&C3;"")

Copia poi D3 verso il basso, diciamo fino a D2000

In questo modo in D2000 avrai l' indirizzo della tua unica mail (nulla vieta di riportare la stessa stringa in E2, facile da essere presa); scrivi la mail (o usi un modello), incolli l' indirizzo in bcc e invii. Purche' il tuo client di posta accetti 1000 indirizzi tutti insieme e il tuo server di posta non qualifichi la mail come spam rifiutandosi di ubbidire.

Se proprio vuoi automatizzare allora usi il codice che hai gia' e invece di .BCC="" scrivi
Codice: Seleziona tutto
.BCC=Range("D2000").Value


Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Inviare mail tramite Excel con Outlook":


Chi c’è in linea

Visitano il forum: Nessuno e 44 ospiti