Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

ALLEGARE PIU' FILE IN UNA MAIL INVIATA TRAMITE MACRO

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

ALLEGARE PIU' FILE IN UNA MAIL INVIATA TRAMITE MACRO

Postdi scanacc » 25/07/16 17:56

Carissimi, uso questa MACRO per inviare mail ed allegare FILE. Funziona tutto benissimo ma adesso vorrei fare in modo di poter allegare più FILE anche 3 o quattro. Non so cosa cambiare. Potete aiutarmi?
PS ecco il codice che uso
Codice: Seleziona tutto
Sub PROVAMAIL2007b()


Dim OutApp As Object
Dim OutMail As Object
Dim EmailAddr As String
Dim Subj As String
Dim BodyText As String
Const LF = vbCrLf
'  (a)
'PERCORSOFILEIMMAGINE = """C:\io.JPG"""

Set OutApp = CreateObject("Outlook.Application")
''compilazione del testo di accompagnamento
OutFile = Cells(Range("G4").Value, "O").Value

For I = 5 To Range("H100").End(xlUp).Row
    BDT = BDT & Cells(I, "H").Value & LF
Next I

''  (b)
Nominat = Cells(Range("G4").Value, "A").Value

EmailAddr = Cells(Range("G4").Value, "B").Value
Subj = Range("H4").Value
'
EmailAddr1 = Cells(Range("G4").Value, "C").Value
Subj = Range("H4").Value

EmailAddr2 = Cells(Range("G4").Value, "D").Value
Subj = Range("H4").Value
'
'IMMAGINE = "<BR>" & "<img src=" & PERCORSOFILEIMMAGINE & "/></b><br>"


Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = EmailAddr
.CC = EmailAddr1 & ";" & EmailAddr2
.BCC = ""
.Subject = Subj
If Cells(Range("G4").Value, "O").Value <> "" Then
.Attachments.Add OutFile
End If
.Body = BDT & IMMAGINE
.send
'.Display 'or use .send
'.send
End With

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


End Sub
scanacc
Utente Junior
 
Post: 58
Iscritto il: 06/12/15 10:30

Sponsor
 

Re: ALLEGARE PIU' FILE IN UNA MAIL INVIATA TRAMITE MACRO

Postdi Anthony47 » 26/07/16 01:18

Per inserire piu' allegati devi replicare l'istruzione; es
Codice: Seleziona tutto
.Attachments.Add OutFile1
.Attachments.Add OutFile2
.Attachments.Add OutFile3

Vedi se riesci a risolvere partendo da questo spunto, altrimenti scrivi ancora spiegando dove sei arrivato e dove invece ti sei arenato.

Io prima di Set OutMail = Nothing inserire una attesa almeno di 1 secondo, altrimenti prima o poi la mail viene annullata prima di essere spedita:
Codice: Seleziona tutto
Application.Wait (Now + TimeValue("0:00:01"))


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

Re: ALLEGARE PIU' FILE IN UNA MAIL INVIATA TRAMITE MACRO

Postdi scanacc » 31/07/16 09:28

Grazie!!!! Appena posso provo. Ciao e grazie di nuovo
scanacc
Utente Junior
 
Post: 58
Iscritto il: 06/12/15 10:30

Re: ALLEGARE PIU' FILE IN UNA MAIL INVIATA TRAMITE MACRO

Postdi scanacc » 31/07/16 13:22

Perfetto!!!
Ho inserito il percorso di Outfile1, ho detto di allegarlo ed ho specificato le condizioni.
GRAZIE!!!

Codice: Seleziona tutto
Sub ANTEPRIMA_MAIL()
Dim OutApp As Object
Dim OutMail As Object
Dim EmailAddr As String
Dim Subj As String
Dim BodyText As String
Const LF = vbCrLf
'  (a)
'PERCORSOFILEIMMAGINE = """C:\io.JPG"""
Set OutApp = CreateObject("Outlook.Application")
''compilazione del testo di accompagnamento
OutFile = Cells(Range("A1").Value, "G").Value

OutFile1 = Cells(Range("A1").Value, "H").Value

For I = 5 To Range("K100").End(xlUp).Row
    BDT = BDT & Cells(I, "K") & LF
Next I
''  (b)
Nominat = Cells(Range("A1").Value, "B").Value
EmailAddr = Cells(Range("A1").Value, "C").Value
Subj = Range("K4").Value
'
EmailAddr1 = Cells(Range("A1").Value, "D").Value
Subj = Range("K4").Value
EmailAddr2 = Cells(Range("A1").Value, "E").Value
Subj = Range("K4").Value
EmailAddr3 = Cells(Range("A1").Value, "F").Value
Subj = Range("K4").Value
'
'IMMAGINE = "<BR>" & "<img src=" & PERCORSOFILEIMMAGINE & "/></b><br>"
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = EmailAddr
.CC = EmailAddr1 & ";" & EmailAddr2 & ";" & EmailAddr3
.BCC = ""
.Subject = Subj
If Cells(Range("A1").Value, "G").Value <> "" Then
.Attachments.Add OutFile
End If

If Cells(Range("A1").Value, "H").Value <> "" Then
.Attachments.Add OutFile1
End If

.Body = BDT
'.send
.Display 'or use .send
'.send
End With

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


End Sub

scanacc
Utente Junior
 
Post: 58
Iscritto il: 06/12/15 10:30

Re: ALLEGARE PIU' FILE IN UNA MAIL INVIATA TRAMITE MACRO

Postdi scanacc » 31/07/16 13:24

PS Perchè hai detto:
Io prima di Set OutMail = Nothing inserire una attesa almeno di 1 secondo, altrimenti prima o poi la mail viene annullata prima di essere spedita:
scanacc
Utente Junior
 
Post: 58
Iscritto il: 06/12/15 10:30

Re: ALLEGARE PIU' FILE IN UNA MAIL INVIATA TRAMITE MACRO

Postdi Anthony47 » 01/08/16 11:21

PS Perchè hai detto:
Io prima di Set OutMail = Nothing inserire una attesa almeno di 1 secondo, altrimenti prima o poi la mail viene annullata prima di essere spedita
Per errore! Volevo scrivere
Io prima di Set OutMail = Nothing raccomando di inserire una attesa almeno di 1 secondo, altrimenti prima o poi la mail viene annullata prima di essere spedita.
Se infatti nella tua macro usi il ".Send" per inviare il messaggio (come scritto nel tuo codice iniziale) e subito dopo il messaggio viene distrutto (Set OutMail = Nothing) allora prima o poi succedera' che il messaggio non verra' spedito.

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

Re: ALLEGARE PIU' FILE IN UNA MAIL INVIATA TRAMITE MACRO

Postdi scanacc » 01/08/16 16:48

Grazie ... ma non riesco a capire il perchè debba accadere questo anche se ovviamente lo ho poi inserito perchè mi fido ciecamente!!!! ;-)
scanacc
Utente Junior
 
Post: 58
Iscritto il: 06/12/15 10:30

Re: ALLEGARE PIU' FILE IN UNA MAIL INVIATA TRAMITE MACRO

Postdi Anthony47 » 02/08/16 01:37

Il comando OutMail.Send non e' ad esecuzione istantanea, viene "passato" ad Outlook per la sua esecuzione; se prima che Outlook completi l'accodamento (l'invio avverra' con molto piu' ritardo) la macro distrugge il messaggio allora succedera' qualcosa di strano...

Comunque hai fatto... la scelta giusta!
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: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "ALLEGARE PIU' FILE IN UNA MAIL INVIATA TRAMITE MACRO":


Chi c’è in linea

Visitano il forum: Nessuno e 9 ospiti