Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

EXCEL - creazione macro per invio automatico email

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

EXCEL - creazione macro per invio automatico email

Postdi eleinad75 » 22/05/07 07:55

Salve a tutti,
devo creare un foglio excel che, una volta compilato, cliccando su un tasto, automaticamente il foglio excel viene inviato via outlook ad un determinato indirizzo email.

Sono riuscito a creare il pulsante che, cliccandoci sopra, mi allega il foglio excel ad un nuovo messaggio di outlook da inviare.

Non riesco a trovare il sistema affinché automaticamente mi scriva l'indirizzo email a cui devo mandarlo.

Potete aiutarmi?
Grazie!
eleinad75
Utente Junior
 
Post: 54
Iscritto il: 22/02/06 10:13

Sponsor
 

Postdi Anthony47 » 22/05/07 09:03

Ciao dany,
inserisci al punto giusto qualcosa come:
Codice: Seleziona tutto
Destin = "a.pippo@dominio.it"   
ActiveWorkbook.SendMail Recipients:=Destin, Subject:="Ciao"

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi eleinad75 » 22/05/07 10:08

Grazie per la risposta.
Ho inserito nella macro del pulsante il testo da te consigliato.
Cliccandoci sopra mi appare questo messaggio:

UN PROGRAMMA STA TENTANDO DI INVIARE AUTOMATICAMENTE LA POSTA ELETTRONICA.

CONSENTIRE L'OPERAZIONE?

SE L'OPERAZIONE NON E' PREVISTA POTREBBE TRATTARSI DI UN VIRUS,
PERTANTO SCEGLIERE NO.


SI NO


Cliccando su SI il messaggio mi viene parcheggiato tra la posta in uscita. Per inviarlo occorre che clicchi sul tasto INVIO.

Puoi aiutarmi a risolvere quest'altro problema?
Grazie
eleinad75
Utente Junior
 
Post: 54
Iscritto il: 22/02/06 10:13

Postdi Anthony47 » 22/05/07 17:14

Questo ultimo problema riguarda la configurazione del tuo client di posta, ma su questo argomento sono incompetente. Sorry.

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: EXCEL - creazione macro per invio automatico email

Postdi d_cirrotti » 25/07/08 11:33

salve atutti,

spero nel vostro aiuto;

allora ho capito che fare per dire ad una macro di mandare un email;

ora vorre, pero', che la macro mandi l'email se

nella cella H2 si verifica un certo valore (maggiore di 3 in valore assoluto)

l'ho detto cosi' come mis erve.

grazie mille.

anthony salvami tu!!!
d_cirrotti
Utente Junior
 
Post: 41
Iscritto il: 27/07/07 11:50

Re: EXCEL - creazione macro per invio automatico email

Postdi d_cirrotti » 25/07/08 12:45

chiedo scusa,

dimenticavo;

inoltre e' preferibile che il soggetto della mail sia il contenuto in valore della cella A1
d_cirrotti
Utente Junior
 
Post: 41
Iscritto il: 27/07/07 11:50

Re: EXCEL - creazione macro per invio automatico email

Postdi Anthony47 » 25/07/08 13:05

ora vorrei, pero', che la macro mandi l'email se nella cella H2 si verifica un certo valore (maggiore di 3 in valore assoluto)
Qualcosa come:
Codice: Seleziona tutto
If abs(Range("H2").value)>3 then
'Istruzioni per l' invio della mail
End if
'Altre istruzioni


Per il Soggetto, ad esempio:
Codice: Seleziona tutto
ActiveWorkbook.SendMail Recipients:=Destin, Subject:=Range("A1").Value


Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: EXCEL - creazione macro per invio automatico email

Postdi d_cirrotti » 25/07/08 13:28

grazie mille,
questo funziona benissimo.
d_cirrotti
Utente Junior
 
Post: 41
Iscritto il: 27/07/07 11:50

Re: EXCEL - creazione macro per invio automatico email

Postdi d_cirrotti » 03/12/09 11:55

ciao a tutti,
mi ricollego a questo argomento;
allora fino ad oggi la soluzione funzionava benissimo e funziona ancora molto bene;
ma il contenuto del foglio axcel i arriva come allegato;
vorrei che un range selezionato, diciamo C26:F47, sia presente nel testo dell'email;
inoltre la soluzione proposta sopra manda l'email via outlook;
magari se fosse possibile un comando che ordini di mandare l'email attraverso excel stesso dovrebbe risolvere il problema automaticamente;
qualcuno puo' aiutare?
non mi interessa mandare il contenuto del foglio al verificarsi di un certo valore;
solo mandare il un range selezionato in un email, come testo
d_cirrotti
Utente Junior
 
Post: 41
Iscritto il: 27/07/07 11:50

Re: EXCEL - creazione macro per invio automatico email

Postdi Flash30005 » 03/12/09 13:20

Non credo sia possibile inviare email senza utilizzare un apposito programma per la messaggistica
Una normale macro per inviare email con outlook (esempio) è questa
Codice: Seleziona tutto
Sub Invioemail()
Dim OutApp As Object
Dim OutMail As Object
Dim EmailAddr As String
Dim Subj As String
Dim BodyText As String

EmailAddr = "email@email.com"  '<<< inserire lo/gli indirizzi
Subj = Range("A1").Value

BodyText = Range("C26").Value

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

With OutMail
.to = EmailAddr
.CC = ""
.BCC = ""
.Subject = Subj
.Body = BodyText
'.Attachments.Add ActiveWorkbook.FullName
.Display 'or use .send
End With

Set OutMail = Nothing
Set OutApp = Nothing
End sub


Il testo che hai inserito nell'area C26 F47 spero si creato in celle unite e quindi non occorre "citare" l'intera area perché assume il valore della prima cella (C26) se, invece, hai dei dati o testi per ogni cella allora dovrai fare una scansione delle celle dell'area e creare il BodyTest con qualcosa tipo
Codice: Seleziona tutto
BodyText = ""
For RR = 26 To 47
    For CC = 3 To 6
If Cells(RR, CC).Value = "" Then GoTo avanti
        BodyText = BodyText & Cells(RR, CC).Value & " "
    Next CC
avanti:
Next RR


Ciao

P.s. non ho potuto provare il funzionamento della macro ma non dovrebbero esserci problemi di esecuzione
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: EXCEL - creazione macro per invio automatico email

Postdi d_cirrotti » 03/12/09 13:43

non funonzia :(
allora,
ho provato entrambe le soluzioni;
mi serve il range;
ma succede solamente che mi apre outlook con il testo in una riga...senza rispetto per la forma;
il tutto si compone di 19 righe;
non manda l'email...mi apre solo outlook con il testo nel body.
d_cirrotti
Utente Junior
 
Post: 41
Iscritto il: 27/07/07 11:50

Re: EXCEL - creazione macro per invio automatico email

Postdi d_cirrotti » 03/12/09 13:51

se mi manda l'email, mi basta;
cambio da cosi :( a cosi :D
la formattazione la posso risolvere manualmente;
d_cirrotti
Utente Junior
 
Post: 41
Iscritto il: 27/07/07 11:50

Re: EXCEL - creazione macro per invio automatico email

Postdi Flash30005 » 03/12/09 15:46

Allora fai una cosa
usa la tipologia di codice che avevi e che ti ha funzionato fino ad ora
metterai questa macro per costruirti il BodiText
Codice: Seleziona tutto
BodyText = ""
For RR = 26 To 47
If Cells(RR, 3).Value = "" Then GoTo avanti
        BodyText = BodyText & Cells(RR, 3).Value & " "
avanti:
Next RR

poi inserisci il codice Body nella procedura precedente
esempio:
ActiveWorkbook.SendMail Recipients:=Destin, Subject:=Range("A1").Value, Body:=BodyText
Oppure devi trovare il codice "Body" appropriato alla tua procedura

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: EXCEL - creazione macro per invio automatico email

Postdi d_cirrotti » 03/12/09 16:19

ciao,
grazie per l'aiuto, purtroppo adesso e' peggio
la tua prima soluzione era la migliore, in quanto mi da il testo che voglio nel corpo dell'email;
purtroppo non manda l'email;
forse si puo' completare la prima soluzione?

grazie comunque
ciao
d_cirrotti
Utente Junior
 
Post: 41
Iscritto il: 27/07/07 11:50

Re: EXCEL - creazione macro per invio automatico email

Postdi Anthony47 » 04/12/09 02:51

Dici "non funziona", ma non spieghi che cosa non funziona; vado quindi a braccia...
Con riferimento al codice di Flash delle 13:20:
Hai inserito anche l' istruzione .Send, all' interno del With OutMail/End with?
Cioe'
Codice: Seleziona tutto
'istruzioni precedenti
.Display 'or use .send
.send      '<<<< QUESTA!
End With
'istruzioni successive

Per quanto riguarda la preparazione del testo, io aggiungerei
Codice: Seleziona tutto
avanti:    'Esistente
BodyText = BodyText & vbCrLf    '<<< AGGIUNTA
Next RR  'Esistente
Questo formatterebbe il messaggio con gli opportuni Cr/Lf.

Non so se e' prudente considerare, in ogni riga, un cella vuota come fine dei dati di riga e quindi skip alla riga successiva; se vuoi eliminare questa logica allora elimina la riga If Cells(RR, CC).Value = "" Then GoTo avanti

Ciao, fai sapere dove arrivi.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: EXCEL - creazione macro per invio automatico email

Postdi d_cirrotti » 04/12/09 13:15

grazie, ora funziona nel senso che mi manda l'email;

ma ho dovuto cancellare dopo .Display il comando 'or use .send
ho solo aggiunto a capo .send;

l'unico problema e' che nel body dell'email e' presente solo la cella C26;

io avrei bisogno del range C26:F47

BodyText = Range("C26").Value

forse e' qui che sbagliamo?
devo ammettere che sono molto ignorante al riguardo;

comunque e' quasi fatta,
grazie mille
d_cirrotti
Utente Junior
 
Post: 41
Iscritto il: 27/07/07 11:50

Re: EXCEL - creazione macro per invio automatico email

Postdi Flash30005 » 04/12/09 13:27

Ma è una cosa già superata questa
la routine For next per creare il Bodytext serviva proprio a questo
nel codice invio email il corpo email dovrebbe chiamarsi Body e non BodyText ma se ti funziona con BodyText allora prima della routine invio macro devi inserire questo codice
Codice: Seleziona tutto
TestoEmail = ""
For RR = 26 To 47
If Cells(RR, 3).Value = "" Then GoTo avanti
        TestoEmail= TestoEmail & Cells(RR, 3).Value  & vbCrLf   ' Consigliato da Anthony per avere ogni riga a capo
avanti:
Next RR

poi nella routine di invio email devi mettere
Codice: Seleziona tutto
BodyText = TestoEmail

Non Range("C26").value 8)

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: EXCEL - creazione macro per invio automatico email

Postdi d_cirrotti » 04/12/09 13:28

chiedo scusa, in effetti ho cancellato la riga menzionata sopra,
e funziona benissimo,
anche la formattazione,

grazie mille.
d_cirrotti
Utente Junior
 
Post: 41
Iscritto il: 27/07/07 11:50

Re: EXCEL - creazione macro per invio automatico email

Postdi d_cirrotti » 07/12/09 15:46

ciao a tutti,
ho appena terminato la macro e volevo condividere le ultime cose:
succedeva che al comando .Send si apriva outlook e poi c'era un messaggio che chiede se vuoi mandare l'email, quindi occorreva selezionare si o no;

Ho risolto quel problema utilizzando le sendkeys;

al posto di .Send

o inserito

SendKeys ("%(s)"), True

questo consente all'email di partire senza nessun blocco;
in poche parole % indica il comando ALT
s tra parentesi indica di tenere premuto il comando precedente e quindi premere s
Funziona una meraviglia;

unico neo: e questo E l'ultimo consiglio che vi chiedo per quest'anno...
mentre avevo aperto (quindi attivo) un altro foglio excel, la macro ha operato sul foglio che avevo al momento;
come posso fare di garantire che la macro agisca solo so Book1 Sheet1 (e' un esempio)
grazie mille
d_cirrotti
Utente Junior
 
Post: 41
Iscritto il: 27/07/07 11:50

Re: EXCEL - creazione macro per invio automatico email

Postdi Anthony47 » 08/12/09 17:19

Il mio suggerimento spartano e' che memorizzi il workbokk attivo (es StWb = ActiveWorkbook.Name) poi attivi il file su cui devi lavorare ed esegui la macro che hai compilato; poi torni sul file iniziale (es Windows(StWb).Activate).
Oppure nelle istruzioni della macro, invece di far riferimento per default all' activeworkbook e all' activesheet, rendi espliciti questi riferimenti, es invece di Subj = Range("A1").Value:
Codice: Seleziona tutto
Subj = Workbooks("Book1.xls").Worksheets("Sheet1").Range("A1").Value

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "EXCEL - creazione macro per invio automatico email":


Chi c’è in linea

Visitano il forum: Nessuno e 9 ospiti