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

Re: [Excel] Creare Macro per invio eMail

Postdi Avatar3 » 05/06/11 18:06

Cominciamo con le modifiche "intelligenti"
1) se hai deciso di inviare ai singoli soci senza far avere gli indirizzi degli altri penso che tu debba cancellare gli indirizzi sul foglio che invii e che hai nella colonna BC
quindi devi inserire la riga codice di canellazione di quell'elenco sul foglio
Codice: Seleziona tutto
   
ActiveWorkbook.SaveAs Filename:="C:\Temp\masa1.xls"  '<<< esistente
    Range("BC9:BC" & UR).ClearContents  '<<<< riga che cancella l'elenco sul foglio che invii
ActiveWindow.Close SaveChanges:=True   '<<< esistente (salva la modifica e chiude il foglio che invii)

---
2) Adesso che usi Outlook e hai la possibilità di inviare in BCC (copia conoscenza nascosta) puoi riprendere il consiglio di Anthony che inglobava tutti gli indirizzi in un unico invio mettendo questa variabile in .BCC
Codice: Seleziona tutto
With OutMail
.To = EmailAddr '<<<< annullare con ""
.CC = ""
.BCC = Range("BC9:BC" & UR).Value
.Subject = Subj
.Attachments.Add OutFile
.Body = BDT
.Display 'or

In questo caso devi togliere chiaramente il for... next
---
per quanto riguarda il tuo quesito della data e ora puoi metterla all'interno del Messaggio di invio non so in quale riga la vorresti
comunque il codice è questo
Codice: Seleziona tutto
Format(Now(), "dd mmmm yyyy HH:mm")

pertanto potrebbe essere questo:
Codice: Seleziona tutto
BDT = "Ti invio il foglio con le ultime partite. " & Format(Now(), "dd mmmm yyyy HH:mm")
BDT = BDT & vbCrLf & "Cordiali saluti" & vbCrLf
BDT = BDT & "masaniello"

oppure
Codice: Seleziona tutto
BDT = "Ti invio il foglio con le ultime partite. " & vbCrLf
BDT = BDT & Format(Now(), "dd mmmm yyyy HH:mm")
BDT = BDT & vbCrLf & "Cordiali saluti" & vbCrLf
BDT = BDT & "masaniello"
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

Sponsor
 

Creare Macro per invio eMail di un solo foglio

Postdi raimea » 05/06/11 18:26

ok
ho fatto tutte le modifiche indicate
ora mi si blocca qui:
Codice: Seleziona tutto
OutFile = "C:\Temp\masa1.xls" 
Range("BC9:BC" & UR).ClearContents 
EmailAddr = Range("BC" & RR).Value  '<<< si blocca qui
Subj = "Invio elenco partite"

come lo devo gestire ?
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 Avatar3 » 05/06/11 18:42

Infatti non deve esserci la riga
Codice: Seleziona tutto
Range("BC9:BC" & UR).ClearContents

in quel punto
Quella riga doveva essere inserita subito dopo la copia del file, rileggi su (Punto 1)
Aggiungo che con qull'inserimento errato hai cancellato l'elenco indirizzi nel file originale :eeh:
Poi è sempre meglio effettuare una modifica alla volta e non tutto insieme
e procedere per passi
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 » 05/06/11 19:22

gia... :-?
ho sistemato la riga che cancella gli indirizzi solo nel foglio da allegare
ma mi si blocca ancora nello stesso punto
Codice: Seleziona tutto
OutFile = "C:\Temp\masa1.xls"  ' e' il file temporaneo che allega
EmailAddr = Range("BC" & RR).Value  '<<< si blocca qui
Subj = "Invio elenco partite"

dice: " metodo renge dell oggetto _global" non riuscito ???
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 » 05/06/11 19:26

Mi devi spiegare se hai tolto il For ... next di RR oppure no
invia l'intera macro così possiamo capire qualcosa


(Ci sono gli indirizzi nella colonna BC del foglio originale?)
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 » 05/06/11 19:53

si gli indirizzi nel foglio origin ci sono - restano
ho tolto for...next
Codice: Seleziona tutto
Sub Invioemail2()
Dim OutApp As Object
Dim OutMail As Object
Dim EmailAddr As String
Dim Subj As String
Dim BodyText As String

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

ActiveSheet.Unprotect

UserForm2.Show vbModeless
DoEvents
Inizio = Timer

Range("BB9:BC28").Select ' <<< ordino le email e do formto carattere colibri
    Selection.Sort Key1:=Range("BC9"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
        Range("BC9:BC28").Select
    With Selection.Font
        .Name = "Calibri"
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
    End With
    With Selection.Font
        .Name = "Calibri"
        .Size = 10
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
    End With
    Selection.Font.Underline = xlUnderlineStyleSingle
    Selection.Font.Underline = xlUnderlineStyleNone
        Selection.Font.ColorIndex = 1
       
       Range("c65536").End(xlUp).Offset(1, 0).Select ' posizionati alla prima riga vuota


UR = Range("BC" & Rows.Count).End(xlUp).Row   '<<< prende gli indirizzi inCol BC

'  (b)
    Sheets("1-masa1-Fogl.Base").Copy   '<<< il foglio da spedire
    ChDir "C:\Temp"                    '<<< cartella da creare o cambiare indirizzo
     ActiveWorkbook.SaveAs Filename:="C:\Temp\masa1.xls" ' <<< e' il file temporaneo che crea con solo il foglio
Range("BC9:BC" & UR).ClearContents  '<<<< riga che cancella l'elenco sul foglio che invii
ActiveWindow.Close SaveChanges:=True

BDT = "Ti invio il foglio con le ultime partite." '<<< compilazione di un testo standard di accompagnamento
BDT = BDT & vbCrLf & "Cordiali saluti" & vbCrLf
BDT = BDT & "masaniello"
BDT = BDT & Format(Now(), "dd mmmm yyyy HH:mm")
'
'  (a)
Set OutApp = CreateObject("Outlook.Application")
 
OutFile = "C:\Temp\masa1.xls"  ' e' il file temporaneo che allega
EmailAddr = Range("BC" & RR).Value
Subj = "Invio elenco partite"
'
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = ""
.CC = ""
.BCC = Range("BC9:BC" & UR).Value
.Subject = Subj
.Attachments.Add OutFile
.Body = BDT
.Display 'or use .send

End With

'  (c)
Set OutMail = Nothing
'
'  (d)
Set OutApp = Nothing

Application.Wait (Now + TimeValue("0:00:04"))
    Application.SendKeys "%a"  ' <<< serve a premere -invia- sull'email che ha creato
    Application.Wait (Now + TimeValue("0:00:04"))


Unload UserForm2
      Fine = Timer
MsgBox ("Tempo impiegato " & Int((Fine - Inizio) / 60) & " min " & (Fine - Inizio) Mod 60 & " Sec")
     Kill "C:\Temp\masa1.xls"  '<<< serve a cancellare il file che crea in C: temp
   End If

Range("c65536").End(xlUp).Offset(1, 0).Select ' posizionati alla prima riga vuota

End Sub

ma avro' cannato ancora qualcosa..... :undecided:
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 » 05/06/11 20:04

A prima vista
a che cosa serve questa riga di codice se hai tolto la variabile RR?
Codice: Seleziona tutto
EmailAddr = Range("BC" & RR).Value

è chiaro che dà errore RR è vuoto (nullo)
puoi eliminarla
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 » 05/06/11 20:19

pota..pota potaaaa :)
tolta
ora si blocca qui
Codice: Seleziona tutto
With OutMail
.To = ""
.CC = ""
.BCC = Range("BC9:BC" & UR).Value  ' <<< da errore qui
.Subject = Subj


dice: " il limite inferire della matrice deve essere uguale zero"
:?:
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 » 05/06/11 20:38

Quella formula l'avevo ricavata dal post precedente e non so come funziona (anche a me dà errore)
direi a questo punto
rintraccia le righe codice
Codice: Seleziona tutto
UR = Range("BC" & Rows.Count).End(xlUp).Row 

'  (b)
    Sheets("1-masa1-Fogl.Base").Copy   '<<< il foglio da spedire
    ChDir "C:\Temp"
    ActiveWorkbook.SaveAs Filename:="C:\Temp\masa1.xls"
    Range("BC9:BC" & UR).ClearContents
ActiveWindow.Close SaveChanges:=True
' da qui aggiungi questo For..next
Indir = ""
For RR = 9 To UR
If RR <> UR Then
Indir = Indir & Range("BC" & RR).Value & "; "
Else
Indir = Indir & Range("BC" & RR).Value
End If
Next RR
Destinat = """" & Indir & """"
'----

e poi metti in BCC = Destinat
Codice: Seleziona tutto
With OutMail
.to = ""
.CC = ""
.BCC = Destinat
.Subject = Subj
'...
'...
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 » 05/06/11 21:22

:D sembra tutto ok
faccio dei test e faccio sapere
poi mettero' on linee la macro finale con tutte le spiegazioni
x ora 1.000 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 Avatar3 » 05/06/11 21:36

se la pubblichi ora provo a vedere se ci sono linee superflue (viste le modifiche parziali fatte) così la testerai di nuovo e pubblicherai
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 » 05/06/11 21:57

versione - beta...
ma funzionante :D
Codice: Seleziona tutto
Sub invio_un_Solo_Foglio()

Dim OutApp As Object
Dim OutMail As Object
Dim EmailAddr As String
Dim Subj As String
Dim BodyText As String

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

ActiveSheet.Unprotect

UserForm2.Show vbModeless
DoEvents
Inizio = Timer

Range("BB9:BC28").Select ' <<< ordino le email e do formato carattere colibri
    Selection.Sort Key1:=Range("BC9"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
        Range("BC9:BC28").Select
    With Selection.Font
        .Name = "Calibri"
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
    End With
    With Selection.Font
        .Name = "Calibri"
        .Size = 10
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
    End With
    Selection.Font.Underline = xlUnderlineStyleSingle
    Selection.Font.Underline = xlUnderlineStyleNone
        Selection.Font.ColorIndex = 1
       
       Range("c65536").End(xlUp).Offset(1, 0).Select 'mi posizionati alla prima riga vuota
'a
UR = Range("BC" & Rows.Count).End(xlUp).Row   '<<< prende gli indirizzi inCol BC

'  (b)
    Sheets("1-masa1-Fogl.Base").Copy   '<<< il foglio da spedire
    ChDir "C:\Temp"                    '<<< dove appoggia il file con 1 solo foglio
     ActiveWorkbook.SaveAs Filename:="C:\Temp\email-masa1.xls" ' <<< e' il file tempor con 1 solo fogl da spedire
Range("BC9:BC" & UR).ClearContents     '<<<< riga che cancella l'elenco delle email solo sul foglio che invii
ActiveWindow.Close SaveChanges:=True

Indir = ""
For RR = 9 To UR
If RR <> UR Then
Indir = Indir & Range("BC" & RR).Value & "; "
Else
Indir = Indir & Range("BC" & RR).Value
End If
Next RR
destinat = "" & Indir & ""

BDT = "Ti invio il foglio con le ultime partite" '<<< compilazione di un testo standard di accompagnamento
BDT = BDT & vbCrLf & "per aprire il foglio premi --> attiva macro" & vbCrLf
BDT = BDT & vbCrLf & "poi, essendo un solo foglio le macro non funzionano...." & vbCrLf
BDT = BDT & vbCrLf & "Cordiali saluti" & vbCrLf
BDT = BDT & vbCrLf & "masaniello" & vbCrLf
BDT = BDT & Format(Now(), "dd mmmm yyyy HH:mm")
'
'  (c)
Set OutApp = CreateObject("Outlook.Application")
 
OutFile = "C:\Temp\email-masa1.xls"  ' e' il file temporaneo che allega
EmailAddr = Range("BC" & RR).Value
Subj = "Invio elenco partite"
'
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = ""
.CC = ""
.BCC = destinat
.Subject = Subj
.Attachments.Add OutFile
.Body = BDT
.Display 'or use .send

End With

'  (c)
Set OutMail = Nothing
'
'  (d)
Set OutApp = Nothing

Application.Wait (Now + TimeValue("0:00:04"))
    Application.SendKeys "%a"            ' <<< serve a premere -invia- sull'email che ha creato in outlook
    Application.Wait (Now + TimeValue("0:00:04"))


Unload UserForm2
      Fine = Timer
MsgBox ("Tempo impiegato " & Int((Fine - Inizio) / 60) & " min " & (Fine - Inizio) Mod 60 & " Sec")
     Kill "C:\Temp\email-masa1.xls"  '<<< serve a cancellare il file che crea in C: temp
   End If

Range("c65536").End(xlUp).Offset(1, 0).Select ' posizionati alla prima riga vuota

End Sub

ciao
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 » 05/06/11 22:45

L'unica variante è commentare la pausa di 4 secondi dopo l'invio in quanto non essendoci un Loop di invii consecutivi penso sia inutile
Codice: Seleziona tutto
Application.Wait (Now + TimeValue("0:00:04"))
    Application.SendKeys "%a"            ' <<< serve a premere -invia- sull'email che ha creato in outlook
    'Application.Wait (Now + TimeValue("0:00:04")) '<<<<< commentare
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 » 06/06/11 06:00

esatto
tolto il 2do tempo d'attesa.
faccio prove e metto on.linne.
ancora molte 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 Avatar3 » 06/06/11 09:29

scusami ma penso che tu possa eliminare anche la condizione in questo passo
da così
Codice: Seleziona tutto
Indir = ""
For RR = 9 To UR
If RR <> UR Then
Indir = Indir & Range("BC" & RR).Value & "; "
Else
Indir = Indir & Range("BC" & RR).Value
End If
Next RR

a così
Codice: Seleziona tutto
Indir = ""
For RR = 9 To UR
Indir = Indir & Range("BC" & RR).Value & "; "
Next RR

Perché anche se termina con un indirizzo e "; " per outlook vada bene lo stesso
(quella If era per una prova precedente dove avevo aggiunto gli apici che ora metto alla fine)
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 » 06/06/11 17:58

ok sistemato macro sopra e funziona.
ho rimesso il 2do "tempo", serve a inviare l'email
ed aspettare che parta in modo che l'avviso di -fine macro- appare a email gia spedita.

Codice: Seleziona tutto
Application.Wait (Now + TimeValue("0:00:03")) '<<< tempo che l'email rimane aperta sul video prima dell'invio
    Application.SendKeys "%a"                ' <<< serve a premere -invia- sull'email che ha creato in outlook
Application.Wait (Now + TimeValue("0:00:05")) 'serve per lasciar partire l'email prima del messag. di fine macro

Unload UserForm2
      Fine = Timer
MsgBox ("Tempo impiegato " & Int((Fine - Inizio) / 60) & " min " & (Fine - Inizio) Mod 60 & " Sec")


amcora qualche test poi metto on.linee
con spiegazioni.
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 » 08/06/11 20:23

Versione finale e funzionante.

spiegazione della macro, per punti:

1) questa macro serve ad inviare un solo foglio,
di un file composto da piu fogli,
il foglio inviato verra' allegato ad una email.

2) la macro utilizza microsoft outlook, (io sto usando outlook 2002 e funziona),
pertanto se non e' il tuo client di posta preferito
devi crearti in outlook un account funzionante,
tipo: uno che usi pochissimo o ne crei uno nuovo.

3) nella macro si puo' decidere cosa scrivere
sia nell'oggetto, che nel contenuto
in questo caso , viene scritto anche il
giorno e l' ora di quando e' stata spedita l'email.

4) gli indirizzi delle persone a cui vuoi spedire il foglio devono essere scritti
nello stesso foglio da spedire, ( in questo caso in Col BC da rig 9),
sul foglio che spedirai tali indirizzi vengono automaticamente cancellati.

5) in C: si deve creare una cartella d'appoggio "temp" C: /temp

6) la macro invia 1na sola email perche' racchiudera' tutti i destinatari in "CCn",
quindi se hai 100 indirizzi in Col BC, non verrano create 100 email ma solo 1na,
inoltre i riceventi non vedranno a chi e' stata mandata.

Spero che con le dovute modifiche,
tutti possano agevolmente usare tale macro.

un grazie mille a Avatar e Antony
per la pazienza che hanno dimostrato come sempre.
Codice: Seleziona tutto
Sub invio_un_Solo_Foglio()

Dim OutApp As Object
Dim OutMail As Object
Dim EmailAddr As String
Dim Subj As String
Dim BodyText As String

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

ActiveSheet.Unprotect

Inizio = Timer
       
        Range("BB9:BC108").Select  ' <<< ordino gli indirizzi e le do'il formato carattere "colibri"
    Selection.Sort Key1:=Range("BB9"), Order1:=xlAscending, Header:=xlNo, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
       
       
        Range("BC9:BC108").Select
    With Selection.Font
        .Name = "Calibri"
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
    End With
    With Selection.Font
        .Name = "Calibri"
        .Size = 10
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
    End With
    Selection.Font.Underline = xlUnderlineStyleSingle
    Selection.Font.Underline = xlUnderlineStyleNone
        Selection.Font.ColorIndex = 1
       
       Range("c65536").End(xlUp).Offset(1, 0).Select 'mi posiziona alla prima cella vuota di Col c
'(a)
UR = Range("BC" & Rows.Count).End(xlUp).Row   '<<< prende gli indirizzi inCol BC

'(b)
    Sheets("1-masa1-Fogl.Base").Copy   '<<< il foglio da spedire
    ChDir "C:\Temp"                    '<<< dove appoggia il file con 1 solo foglio
     ActiveWorkbook.SaveAs Filename:="C:\Temp\email-masa1.xls" ' <<< e' il file tempor con 1 solo fogl da spedire
Range("BC9:BC" & UR).ClearContents     '<<<< riga che cancella l'elenco delle email solo sul foglio che invii
ActiveWindow.Close SaveChanges:=True

Indir = ""
For RR = 9 To UR
Indir = Indir & Range("BC" & RR).Value & "; "
Next RR

destinat = "" & Indir & ""

BDT = "riga 1" & vbCrLf  '<<< da qui si compila il contenuto dell'email
BDT = BDT & vbCrLf & "riga 2"
BDT = BDT & vbCrLf & "riga 3" & vbCrLf
BDT = BDT & vbCrLf & "riga 4" & vbCrLf
BDT = BDT & vbCrLf & "riga 5" & vbCrLf
BDT = BDT & vbCrLf & "www.lelugarine.eu" & vbCrLf
BDT = BDT & vbCrLf & "" & vbCrLf
BDT = BDT & Format(Now(), "dd mmmm yyyy  Ore HH:mm") & vbCrLf       ' <<< data ed ora di spedizione

'(c)
Set OutApp = CreateObject("Outlook.Application")
 
OutFile = "C:\Temp\email-masa1.xls"            ' e' il file temporaneo che allega
EmailAddr = Range("BC" & RR).Value

Subj = "Prova E.mail --> oggetto"   '<<< l' oggetto del messaggio

Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = ""
.CC = ""
.BCC = destinat
.Subject = Subj
.Attachments.Add OutFile
.Body = BDT
.Display 'or use .send

End With

'(d)
Set OutMail = Nothing

'(e)
Set OutApp = Nothing

Application.Wait (Now + TimeValue("0:00:03")) '<<< tempo che l'email rimane aperta sul video prima dell'invio
    Application.SendKeys "%a"                ' <<< serve a premere -invia- sull'email che ha creato in outlook
Application.Wait (Now + TimeValue("0:00:07")) 'serve per lasciar partire l'email prima del messag. di fine macro


      Fine = Timer
MsgBox ("Tempo impiegato " & Int((Fine - Inizio) / 60) & " min " & (Fine - Inizio) Mod 60 & " Sec")
     Kill "C:\Temp\email-masa1.xls"  '<<< serve a cancellare il file che crea in C: temp
   End If

Range("c65536").End(xlUp).Offset(1, 0).Select ' posizionati alla prima riga vuota

End Sub
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 Flash30005 » 08/06/11 23:52

Grazie Raimea per il tuo contributo
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] Creare Macro per invio eMail

Postdi LaSte » 10/01/12 12:21

Non so se questa è la sezione esatta, ma ho bisogno di mandare la stessa mail ad un elenco d'indirizzi presenti in foglio excel, ma non so da che parte iniziare!
LaSte
Newbie
 
Post: 1
Iscritto il: 09/01/12 16:24

Re: [Excel] Creare Macro per invio eMail

Postdi Flash30005 » 10/01/12 16:20

Ciao LaSte e benvenuto nel Forum

Questa è sia la Sezione sia Topic corretto ;)

In qeusto topic ci sono già diversi esempi di invio email
e abbiamo visto che per inviare una semplice email sono sufficienti poche righe di codice
per inviare la stessa email ad un elenco esistente su un foglio di excel
non occorre altro che creare un ciclo For... next per prelevare l'indirizzo dall'elenco e inserirlo nella routin come variabile

se riesci da solo ok, altrimenti posta ancora
informandoci anche sul programma di posta che usi (OutlookExpress, MsOutlook o altro)
e in quale colonna del foglio hai gli indirizzi di email (soprattutto se l'indirizzo è nel formato standard, es.: nomedestinatario@dominio.it, etc)

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-

PrecedenteProssimo

Torna a Applicazioni Office Windows


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


Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti