Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

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

Ultimo Aggiornamento: 15/03/2017 11:44
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]
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 07:26. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com