Macro per inviare mail con allegati diversi partendo da Excel

Versione Completa   Stampa   Cerca   Utenti   Iscriviti     Condividi : FacebookTwitter
Massimetto.85
00mercoledì 17 giugno 2015 19:22
Macro per inviare mail con allegati diversi
Ciao a tutti, sto cercando di fare una macro per inviare delle mail ognuna con un allegato diverso partendo da un file Excel.
Questo è il codice che sto usando completo di commenti:
Sub Manda_mail_con_diversi_allegati()
'
' Manda_mail_con_diversi_allegati Macro
'

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

Foglio2.Select

' RR contiene il nuemro di utenti cui inviare le e-mail (1 per utente)
'RR = Range("B" & Rows.Count).End(xlUp).Row
RR = 2
' 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 "A" contiene gli indirizzi e-mail dei vari destinatari
.To = Cells(i, 1)

' La colonna "B" contiene l'oggetto della e-mail
.Subject = Cells(i, 2)

' La colonna "C" contiene l testo della e-mail
.Body = Cells(i, 3)

' La colonna "D" contiene il percorso ove si trova il file da allegare
' La colonna "E" contiene il nome del file da allegare
.Attachments.Add (Cells(i, 4) & Cells(i, 5))

.Display
End With
Set OutMail = Nothing
Set OutApp = Nothing
Application.SendKeys "%a"
Next i
End Sub
Quando cerco di eseguire la macro mi da errore e mi dice "impossibile trovare il file. Verificare che il percorso ed il nome del file siano corretti."
Sapete aiutarmi?
Vi ringrazio anticipatamente. :-) :-) :-)
dodo47
00mercoledì 17 giugno 2015 19:43
Ciao
intanto ti consiglio di portare:
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
prima del For, altrimenti ogni volta riapri una istanza di Outlook.

Poi: che c'è nelle celle D2 e D3 ? Te lo chiedo perché la macro è corretta, quindi presumibilmente manca qualcosa, magari il back slash della cartella oppure l'estensione del file?

Es:
D2....c:\miacartella\
D3....TuoFile.xxx

saluti
Massimetto.85
00mercoledì 17 giugno 2015 20:18
Anzitutto grazie per avermi risposto.
Considera che è pochissimo che uso VBA. E non so fare praticamente nulla.
In allegato un file con quello che ho scritto nelle celle.
In D2 D3 ci sono i percorsi dei file con i relativi back slash.
In E2 E3 ci sono i nomi dei file con le relative estensioni.





alfrimpa
00mercoledì 17 giugno 2015 21:27
Ciao Massimetto

Prova a mettere il back slash "\" alla fine dei percorsi e riprova
dodo47
00giovedì 18 giugno 2015 09:44
Ciao
eppure te lo avevo detto: "....presumibilmente manca qualcosa, magari il back slash della cartella...." [SM=x423066]

saluti
Massimetto.85
00giovedì 18 giugno 2015 10:10
Buongiorno, scusate mi era sfuggito il back slash alla fine dei percorsi.
Grazie 1000!!!
Alberto Cancellario
00giovedì 9 marzo 2017 23:21
Supporto con questo script
Ciao a tutti,
ho visto questa discussione ed ho pensato facesse esattamente al caso mio, così ho seguito le semplici linee guida della macro e la ho impostata, solo che ho un problema: mi invia solo e soltanto la email al primo destinatario e poi mi dà un errore, come mai secondo voi?

di seguito il codice che ho usato

Sub Manda_email_con_allegati_differenti()


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

Foglio1.Select

RR = Range("B" & Rows.Count).End(xlUp).Row
RR = 5

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
For i = 2 To RR
With OutMail

.To = Cells(i, 1)
.Subject = Cells(i, 2)
.Body = Cells(i, 3)
.Attachments.Add (Cells(i, 4) & Cells(i, 5))
.Display

End With

Set OutMail = Nothing
Set OutApp = Nothing
Application.SendKeys "%a"
Next i
End Sub


Ora, se modifico il campo range e lo "allineo" per così dire con il For allora nessuna problema, ma ovviamente invia una unica email, mentre se lascio i parametri in questo modo, mi apre la prima email e poi mi dà questo errore:

ERRORE DI RUN TIME "91"
Variabile oggetto o Variabile del blocco With non impostata


Cosa ho sbagliato nella Macro.

Grazie a tutti in anticipo

Alberto
alfrimpa
00venerdì 10 marzo 2017 12:31
Ciao Alberto

L'ERRORE DI RUN TIME "91" Variabile oggetto o Variabile del blocco With non impostata

è uno dei più "rognosi" e di difficile interpretazione.

Ti consiglio di aprire una nuova discussione allegando un file di esempio (con dati fittizi)ma strutturalmente uguale al tuo originale spiegando il risultato che vuoi ottenere.

Non è detto che si riesca a risolvere ma ci proviamo.
Alberto Cancellario
00venerdì 10 marzo 2017 13:41
Grazie mille Alfredo provvedo subito e speriamo :)
Questa è la versione 'lo-fi' del Forum Per visualizzare la versione completa clicca qui
Tutti gli orari sono GMT+01:00. Adesso sono le 13:42.
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com