| | Post: 4 | Registrato il: 10/02/2015
| Utente Junior | office365 | | OFFLINE | |
|
10/03/2017 13:48 | |
Buongiorno a tutti, come consigliatomi da alfrimpa che ringrazio, apro un novo Thread per il problema in cui sto incorrendo.
Lo scopo del codice che andrò sotto a definire è quello di poter mandare email diverse a destinatari differenti con allegati differenti, ma facendo in modo che al click di un pulsante associato a questa macro il sistema autocompili le email. Purtroppo non riesco a far funzionare il codice in quanto dopo aver aperto la prima email mi dà un errore di Run time "91".
Di seguito quoto quanto già postato nell'altro thread.
Alberto Cancellario, 3/9/2017 11:21 PM:
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
oltre a ciò vi allego un file tipo.
Grazie e tutti in anticipo
Alberto [Modificato da Alberto Cancellario 10/03/2017 15:46] |
|
| | Post: 4 | Registrato il: 10/02/2015
| Utente Junior | office365 | | OFFLINE | |
|
14/03/2017 19:36 | |
Ragazzi, nessuno ha idea quindi di come risolvere il problema? Scusate non voglio essere insistente, ma voglio solo capire se trovare una soluzione alternativa oppure posso continuare su quella strada.
Grazie ancora a tutti |
| | Post: 354 | Registrato il: 24/06/2015
| Città: CATANIA | Età: 80 | Utente Senior | Excel2019 | | OFFLINE |
|
14/03/2017 20:59 | |
Ciao Alberto
non mi sono chiare queste due righe di codice
RR = Range("B" & Rows.Count).End(xlUp).Row
RR = 5
Così come sono scritte la variabile RR varrà sempre 5. Mi chiedo allora che bisogno c'è di scrivere pure la prima riga?
Ciao,
Mario |
| | Post: 5 | Registrato il: 10/02/2015
| Utente Junior | office365 | | OFFLINE | |
|
14/03/2017 21:09 | |
ciao Marius44,
ho rivisto quello che ho postato, ho fatto un errore, nel riprodurlo. Ho usato sia la versione con la stringa RR = Range("B" & Rows.Count).End(xlUp).Row che RR = 5 e in realtà il problema nasce proprio lì.
Ho fatto delle prove con entrambe le stringhe e se lascio solo la prima riga, (escludendo quindi RR = 5) non mi dà alcun errore, ma accade proprio nulla.
Inserendo invece RR = 5 e quindi escludendo la prima riga, mi dà l'errore definito nel titolo del thread.
Chiedo scusa per avere copiato male il thread, mi è successo perchè facendo le prove avevo lasciato la prima riga ma con ' avanti.
|
| | Post: 355 | Registrato il: 24/06/2015
| Città: CATANIA | Età: 80 | Utente Senior | Excel2019 | | OFFLINE |
|
15/03/2017 10:03 | |
Ciao Alberto
Ho fatto un giro per la rete ed a questo indirizzo " h t t p://archi.forumup.it/about1802-0.html "
ho trovato la tua macro ma leggermente diversa, cioè questa:
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
For i = 2 To RR
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
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
Non ho potuto testarla perchè non ho Outlook.
Vedi un po' tu se funziona (la fonte è autorevolissima).
Ciao,
Mario |
| | Post: 6 | Registrato il: 10/02/2015
| Utente Junior | office365 | | OFFLINE | |
|
15/03/2017 11:44 | |
Grazie mille,
ho fatto le verifiche del caso e dopo avermi aperto outlook e permesso di inviare la prima email mi dà un nuovo errore:
Errore di Run time - 2147467259 (80004005)
Errore di Automazione
Errore non specificato
Così a naso, ma potrei sbagliarmi, credo che il problema sia lo stesso di prima solo che excel lo dichiara in modo differente.
:(
[Modificato da Alberto Cancellario 15/03/2017 11:52] |
|
|