Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[Excel] Creare Macro per invio 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] Creare Macro per invio eMail

Postdi alessio.dambrosio » 17/09/09 15:00

Ciao a tutti,
vi ringrazio innanzitutto delle preziose informazioni che ci sono su questo forum. Non sono un tecnico, ho solo bisogno di fare un mini-programmino di contabilità.

Allora, ho un file , chiamato totale.xls
2 sheet:
- giornaliero, con una serie di dati
- ddt , dove seleziono quelli che mi servono e li metto in formato fattura.

Vorrei sapere se posso creare una macro che:
1- invii soltanto il foglio "ddt" ad un indirizzo email già presente sul foglio in modo che il cliente possa riceverlo
2- meglio se lo stampa in PDF prima (oppure si risolver proteggendo il foglio)
3- invio automatico con Thunderbird

L'indirizzo email è caricato automaticamente sul foglio tramite richiami al foglio "giornaliero".

E' possibile?
Grazie mille
alessio.dambrosio
Newbie
 
Post: 1
Iscritto il: 17/09/09 14:48

Sponsor
 

Re: [Excel] Creare Macro per invio eMail

Postdi Anthony47 » 20/09/09 18:18

Ciao alessio e benvenuto nel forum.
Su un altro forum, per spedire un solo foglio avevo suggerito questa macro (che spedisce Foglio1):
Codice: Seleziona tutto
Sub Send_un_Solo_Foglio()
Sheets("Foglio1").Copy
Destinat = "utente@dominio.it"  'il tuo indirizzo di destinazione
Ogget = "Oggetto mail"  'l' oggetto che vuoi tu
ActiveWorkbook.SendMail _
Recipients:=Destinat, Subject:=Ogget
ActiveWindow.Close SaveChanges:=False
End Sub
Ovviamente puoi usare una cella del tuo foglio per compilare la variabile Destinat
Non ho capito se tutte le altre cose sono risolte, nel caso posta ancora.

Comunque fai sapere dove arrivi, 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: 13903
Iscritto il: 21/03/06 16:03
Località: Ivrea

Creare Macro per invio eMail di un singolo foglio

Postdi raimea » 02/06/11 16:24

ciao a tutti
ho provato questa macro e mi funziona come descritto,
voleva sapere come la dovrei modificare per far si' che
possa inserire piu indirizzi e-mail a cui spedirla anzicche' solo uno.
io ho provato cosi' ma non va...

Codice: Seleziona tutto
Sub invio_un_Solo_Foglio()
Sheets("1-masa1-fogl.base").Copy
Destinat = "gereff@virgilio.it; info@lelugarine.eu"  'il tuo indirizzo di destinazione
Ogget = "luga masaniello"    ' <<<l' oggetto che vuoi tu
ActiveWorkbook.SendMail _
Recipients:=Destinat, Subject:=Ogget
ActiveWindow.Close SaveChanges:=False
End Sub


vi ringrazio
http://www.lelugarine.eu
S.O. Seven7, Excell 2010
Avatar utente
raimea
Utente Senior
 
Post: 1101
Iscritto il: 11/02/10 07:33
Località: lago

Re: [Excel] Creare Macro per invio eMail

Postdi Anthony47 » 02/06/11 23:06

Dall' help on line, Metodo SendMail:
Recipients Argomento necessario di tipo Variant. Specifica il nome del destinatario sotto forma di testo o di matrice di stringhe di testo se esistono più destinatari

Il modo piu' semplice per ottenere cio':
Codice: Seleziona tutto
Destinat = array(email1@dominio1.com, email2@dominio2.it)

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: 13903
Iscritto il: 21/03/06 16:03
Località: Ivrea

Creare Macro per invio eMail

Postdi raimea » 03/06/11 06:13

ho sostituito quanto scritto da antony, ma mi da :

errore di compilazione, errore di sisntassi.. :-?
Codice: Seleziona tutto
Sub invio_un_Solo_Foglio()

scelta = MsgBox(Prompt:=" Stai per Spedire SOLO questo foglio ", Buttons:=vbYesNo, _
Title:=" Mando E.mail ai soci ? ")
If scelta = 6 Then          '6 = SI; 7=No

                       

Sheets("1-masa1-fogl.base").Copy

Destinat = array(email1@dominio1, email2@dominio2.it)  '<<< qui gli indirizzi a cui spedire

Ogget = "luga masaniello"    ' <<<l' oggetto che vuoi tu
ActiveWorkbook.SendMail _
Recipients:=Destinat, Subject:=Ogget
ActiveWindow.Close SaveChanges:=False
End If

End Sub

cosa dovrei mdificare ?
grazie
http://www.lelugarine.eu
S.O. Seven7, Excell 2010
Avatar utente
raimea
Utente Senior
 
Post: 1101
Iscritto il: 11/02/10 07:33
Località: lago

Re: [Excel] Creare Macro per invio eMail

Postdi Anthony47 » 03/06/11 10:39

Pardon, ognuno degli indirizzi va messo tra virgolette ("), come tutte le stringhe.
Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 13903
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] Creare Macro per invio eMail

Postdi raimea » 03/06/11 17:44

ok cosi funzina tutto
grazie
http://www.lelugarine.eu
S.O. Seven7, Excell 2010
Avatar utente
raimea
Utente Senior
 
Post: 1101
Iscritto il: 11/02/10 07:33
Località: lago

Creare Macro per invio eMail di un solo foglio

Postdi raimea » 03/06/11 20:24

questa e' l'email finale che grazie ad antony mi manda un singolo foglio a piu' indirizzi email
Codice: Seleziona tutto
Sub invio_un_Solo_Foglio()

scelta = MsgBox(Prompt:=" Stai per Spedire SOLO questo foglio ", Buttons:=vbYesNo, _
Title:=" Mando E.mail ai soci ? ")
If scelta = 6 Then          '6 = SI; 7=No

                       

Sheets("1-masa1-fogl.base").Copy

Destinat = Array("raimea@alice.it", "info@lelugarine.eu", "raimea@hotmail.com")  '<<< qui gli indirizzi a cui spedire

Ogget = "luga masaniello  --> email di prova"    ' <<<l' oggetto che vuoi tu
ActiveWorkbook.SendMail _
Recipients:=Destinat, Subject:=Ogget
ActiveWindow.Close SaveChanges:=False
End If

End Sub

solo che dopo alcuni invii ho visto che mi e' molto scomodo
ogni volta entrare nella macro per aggiungere/togliere indirizzi.
sarebbe possibile far si che la macro legga gli indirizzi da una determinata colonna dello stesso foglio. :?: :idea:
io avrei impostato che in Col BC da Cell 9 in giu' scrivo i vari indirizzi email
e la macro dovrebbe mandare il foglio a tutti gli indirizzi scritti in BC

premetto cho ho letto tutto il topic, (che serve pero' a mandare un allegato )
viewtopic.php?f=26&t=62073&hilit=invio+email
ed ho tentato di adattarlo ma non ci sono riuscito,.
vi ringrazio
http://www.lelugarine.eu
S.O. Seven7, Excell 2010
Avatar utente
raimea
Utente Senior
 
Post: 1101
Iscritto il: 11/02/10 07:33
Località: lago

Re: [Excel] Creare Macro per invio eMail

Postdi Avatar3 » 03/06/11 20:48

Era più o meno questo quello che avrei voluto consigliarti ma non sono intervenuto perché la tua esigenza era un'altra....
Visto che il tutto avviene automaticamente cosa comporta se invii una email ad ogni destinatario evitando di far conoscere a tutti gli indirizzi di invio?
Se ti interessa questa soluzione
fai un For... next
Codice: Seleziona tutto
UR = Range("BC" & Rows.Count).End(xlUp).Row
For RR = 9 to UR
Destinat = Range("BC" & RR).value
...
...
...
...
Next RR
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Creare Macro per invio eMail

Postdi raimea » 03/06/11 21:49

ok il ragionamento di avatar.
ho impostato la macro cosi':
Codice: Seleziona tutto
Sub invio_un_Solo_Foglio()

scelta = MsgBox(Prompt:=" Stai per Spedire SOLO questo foglio ", Buttons:=vbYesNo, _
Title:=" Mando E.mail ai soci ? ")
If scelta = 6 Then          '6 = SI; 7=No

UR = Range("BC" & Rows.Count).End(xlUp).Row
For RR = 9 To UR
Destinat = Range("BC" & RR).Value

Sheets("1-masa1-fogl.base").Copy
Ogget = "luga masaniello  --> email di prova"    ' <<<l' oggetto che vuoi tu
ActiveWorkbook.SendMail _
Recipients:=Destinat, Subject:=Ogget
ActiveWindow.Close SaveChanges:=False

Next RR
   
   End If

End Sub

solo che mi manda 1na sola email,
pur facendo le prove con 3 indirizzi scritti in col BC. :undecided:
forse si deve mettere un qualcosa che rallenti la compilazione fra un indirizzo e l'altro ?
come si accenna nel topic:
viewtopic.php?f=26&t=62073&hilit=invio+email
http://www.lelugarine.eu
S.O. Seven7, Excell 2010
Avatar utente
raimea
Utente Senior
 
Post: 1101
Iscritto il: 11/02/10 07:33
Località: lago

Re: [Excel] Creare Macro per invio eMail

Postdi Avatar3 » 03/06/11 21:59

Prima di mettere una pausa tipo OnTime
prova a non chiudere il foglio invertendo queste due righe di codice
da così
Codice: Seleziona tutto
ActiveWindow.Close SaveChanges:=False

Next RR


a così
Codice: Seleziona tutto
Next RR
ActiveWindow.Close SaveChanges:=False
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Creare Macro per invio eMail di un solo foglio

Postdi raimea » 03/06/11 22:09

mmmm
se inverto parte ancora 1na sola email,
inoltre mi chiude un solo foglio temporaneo e mi rimangono aperti gli altri.
provo ad allegarvi il mio file.
il pulsante - email- e' nel foglio 1.
grazie

http://www.sendspace.com/file/2dalqp
http://www.lelugarine.eu
S.O. Seven7, Excell 2010
Avatar utente
raimea
Utente Senior
 
Post: 1101
Iscritto il: 11/02/10 07:33
Località: lago

Re: [Excel] Creare Macro per invio eMail

Postdi Avatar3 » 03/06/11 22:23

Non trovo alcun foglio1 con indirizzi e pulsante
e nemmeno la macro che invia

Comunque ricontrollando il codice credo che il copy del foglio copia debba essere inserito prima del for... next
Codice: Seleziona tutto
Sub invio_un_Solo_Foglio()

scelta = MsgBox(Prompt:=" Stai per Spedire SOLO questo foglio ", Buttons:=vbYesNo, _
Title:=" Mando E.mail ai soci ? ")
If scelta = 6 Then          '6 = SI; 7=No
Sheets("1-masa1-fogl.base").Copy
Ogget = "luga masaniello  --> email di prova"    ' <<<l' oggetto che vuoi tu

UR = Range("BC" & Rows.Count).End(xlUp).Row
For RR = 9 To UR
Destinat = Range("BC" & RR).Value

Sheets("1-masa1-fogl.base").Copy
Ogget = "luga masaniello  --> email di prova"    ' <<<l' oggetto che vuoi tu
ActiveWorkbook.SendMail _
Recipients:=Destinat, Subject:=Ogget
Next RR
  ActiveWindow.Close SaveChanges:=False
   End If
End Sub


(sto realizzando la macro in diretta senza poterla provare)

Edidata dopo la tua risposta
Ultima modifica di Avatar3 su 03/06/11 22:32, modificato 2 volte in totale.
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Re: [Excel] Creare Macro per invio eMail

Postdi raimea » 03/06/11 22:28

:eeh:
il foglio 1 si chiama : 1-masa-fogl.base
il pulsante in alto c'e scritto E-mail
:-?
http://www.lelugarine.eu
S.O. Seven7, Excell 2010
Avatar utente
raimea
Utente Senior
 
Post: 1101
Iscritto il: 11/02/10 07:33
Località: lago

Re: [Excel] Creare Macro per invio eMail

Postdi Avatar3 » 03/06/11 22:38

Leggi il post precedente corretto (in tempo) dopo la tua risposta

Immagine

Uploaded with ImageShack.us


Non lo vedo.... Sarà l'ora?
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Re: [Excel] Creare Macro per invio eMail

Postdi raimea » 04/06/11 05:53

... non era l'ora tarda....
avatar ha ragione, in quel file non c'e ne macro ne pulsante...
chiedo scusa , :oops:
non so cosa sia successo nel caricare il file on.linee.

questo il file con la macro e il pulsante.

http://www.sendspace.com/file/8o3j3t

PS
ho visto le correzzioni fatte nella macro sopra di avatar,
ti confermo che mi parte ancora 1na sola email,
inoltre mi rimangono aperte delle cartelle.

di nuovo, confermo di aver fatto io un errore.
grazie, per la pazienza :oops:
http://www.lelugarine.eu
S.O. Seven7, Excell 2010
Avatar utente
raimea
Utente Senior
 
Post: 1101
Iscritto il: 11/02/10 07:33
Località: lago

Re: [Excel] Creare Macro per invio eMail

Postdi Avatar3 » 04/06/11 09:57

Adesso c'è la macro per spedire l'email ma non c'erano le modifiche che avevo indicato nel post
purtroppo non posso provare la spedizione perché ho un programma di posta diverso dal tuo
ma ho verificato che ora apre solo una copia del foglio1
e il destinatario cambia ad ogni ciclo pertanto dovresti provare tu stesso questa macro
Codice: Seleziona tutto
Sub invio_un_Solo_Foglio()

scelta = MsgBox(Prompt:=" Stai per Spedire SOLO questo foglio ", Buttons:=vbYesNo, _
Title:=" Mando E.mail ai soci ? ")
If scelta = 6 Then          '6 = SI; 7=No
Sheets("1-masa1-fogl.base").Copy
UR = Range("BC" & Rows.Count).End(xlUp).Row   '<<< prende gli indirizzi inCol BC
For RR = 9 To UR
Destinat = Range("BC" & RR).Value
Ogget = "luga masaniello  --> email di prova"    ' <<<l' oggetto che vuoi scrivere
ActiveWorkbook.SendMail _
Recipients:=Destinat, Subject:=Ogget

Next RR
   ActiveWindow.Close SaveChanges:=False
   End If

End Sub
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Creare Macro per invio eMail di un solo foglio

Postdi raimea » 04/06/11 11:55

fatta la prova con l'ultima macro, ma parte solo una email.
penso di essere riuscito a risolvere aggiungendo un tempo di attesa tra
una email e laltra
riporto sotto tale macro.
Codice: Seleziona tutto
Sub invio_un_Solo_Foglio()

scelta = MsgBox(Prompt:=" Stai per Spedire SOLO questo foglio ", Buttons:=vbYesNo, _
Title:=" Mando E.mail ai soci ? ")
If scelta = 6 Then          '6 = SI; 7=No

UR = Range("BC" & Rows.Count).End(xlUp).Row   '<<< prende gli indirizzi inCol BC
For RR = 9 To UR
Destinat = Range("BC" & RR).Value

Sheets("1-masa1-fogl.base").Copy
Ogget = "luga masaniello  --> email di prova"    ' <<<l' oggetto che vuoi scrivere
ActiveWorkbook.SendMail _
Recipients:=Destinat, Subject:=Ogget

ActiveWindow.Close SaveChanges:=False

Application.Wait (Now + TimeValue("0:01:00"))  '<<< tempo di ritardo tra una e.mail e l'altra

Next RR
   
   End If

End Sub

grazie x la disponibilita' dimostrata come sempre. :)
http://www.lelugarine.eu
S.O. Seven7, Excell 2010
Avatar utente
raimea
Utente Senior
 
Post: 1101
Iscritto il: 11/02/10 07:33
Località: lago

Re: [Excel] Creare Macro per invio eMail

Postdi Avatar3 » 04/06/11 12:12

Il discorso della pausa era prevedibile
puoi usare questo codice
Codice: Seleziona tutto
Application.OnTime Now + TimeValue("00:00:05"),

che corrisponde a 5 secondi
ma ho ricontrollato la tua macro e secondo me stai ancora utilizzando quella non corretta
perché copy ogni volta il foglio e lo chiudi
mentre la macro da me inviata (l'ultima)
lo copia una sola volta
invia le email a tutti
e alla fine lo chiude

Ma se a te sta bene così....
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Re: [Excel] Creare Macro per invio eMail

Postdi Anthony47 » 04/06/11 12:34

Vedi anche il messaggio di Avatar sopra.
Mi intrometto per segnalare che, tornando alla macro iniziale, si potrebbero usare
Codice: Seleziona tutto
UR = Range("BC" & Rows.Count).End(xlUp).Row   '<<< prende gli indirizzi inCol BC
Destinat = Range("BC9:BC" & UR).Value
Resta valido il discorso che in questo modo tutti i destinatari ricevono la stessa mail, quindi vedono gli indirizzi di tutti i destinatari, cosa indirizzata dal metodo di Avatar.

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: 13903
Iscritto il: 21/03/06 16:03
Località: Ivrea

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Creare Macro per invio eMail":


Chi c’è in linea

Visitano il forum: Nessuno e 16 ospiti

cron