Risolto Supporto schedulazione Macro Mail Sender

Lelia11

Nuovo utente
20 Novembre 2019
5
3
24
Milano
Office 365
0
Ciao,

Sto avendo qualche problema a mettere apposto la Macro descritta in oggetto.
Sostanzialmente nel file allegato è presente una tabella che si aggiorna automaticamente tramite connessione ODBC con DB SQL. La mia esigenza è che la tabella si aggiorni ogni 30 minuti e, subito dopo il refresh,questa venga inviata per intero tramite mail. (Il File sarà sempre aperto in background su una macchina virtuale)
Sono riuscito a mettere insieme la macro che vedete sotto. L'anomalia che riscontro è legata all'invio mail. Se lancio la macro manualmente parte una sola Mail contenente l'intera tabella. Se attendo i 30 minuti per far si che la macro giri in automatico escono diverse mail tutte uguali (Fino a 20 mail identiche). Purtroppo non sono riuscito a risolvere in autonomia questo problema e ci sto sbattendo la testa da un po'. Grazie in anticipo a chiunque volesse darmi una mano :)
p.s Ho cercato già sul forum e non ho trovato una discussione di qualcuno che avesse riscontrato problemi simili al mio.


Macro:
Option Explicit


Sub Send_Mail()
Dim xMin As String


 
    ActiveWorkbook.RefreshAll
    Dim OutApp As Object
    Dim OutMail As Object
    Dim StrMsg As String
    Dim StrMail As String
    Dim StrDest As String
    Dim uR As Long
    Dim i As Long
    Dim j As Integer
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    StrMsg = "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01//EN' 'http://www.w3.org/TR/html4/strict.dtd' >"
    StrMsg = StrMsg & "<html xmlns='http://www.w3.org/1999/xhtml'>"
    StrMsg = StrMsg & "<body>"
    StrMsg = StrMsg & "<p> Ciao,"
    StrMsg = StrMsg & "<br /><br /> Di seguito i riassegnamenti da gestire: </p>"
    StrMsg = StrMsg & "<table width='800' border= '1' cellpadding='0'>"
    StrMsg = StrMsg & "<tr>"
    uR = Foglio1.Cells(Rows.Count, 1).End(xlUp).Row
    For i = 1 To uR
        For j = 1 To 4
            If i = 1 Then
                StrMsg = StrMsg & _
                    "<td><p aling='center'>" & _
                    "<font color='blue'>" & _
                    "<strong>" & _
                    "<span style='font-size:16px'>" & _
                    Foglio1.Cells(i, j) & _
                    "</font> </strong> </p></td> </span>"
            Else
                StrMsg = StrMsg & "<td><p aling='center'>" & Foglio1.Cells(i, j) & "</p></td>"
            End If
            StrMail = StrMsg
        Next
        StrMsg = StrMsg & "</tr>"
    Next
    StrMsg = StrMail & "</table>"
    StrMsg = StrMsg & "<br> Cordiali saluti. </br>"
    StrMsg = StrMsg & "</body>"
    StrMsg = StrMsg & "</htlm>"
    StrDest = "[email protected]"
    With OutMail
        .To = "[email protected]"
        .CC = ""
        .BCC = ""
        .Subject = "test " & Now
        .HTMLBody = StrMsg
        '.Display
        .Send
    End With
    Set OutApp = Nothing
    Set OutMail = Nothing

Dim b As Date
b = Now + TimeValue("00:30:00")
Application.OnTime b, "Send_Mail"
 
End Sub
 

Allegati

Lelia11

Nuovo utente
20 Novembre 2019
5
3
24
Milano
Office 365
0
Ciao Andrea, ho provato a far girare il file sul mio PC Eliminando la connessione ODBC ed effettivamente cosi la query sembrerebbe funzionare. Il problema potrebbe essere legato alla presenza della connessione ODBC e della query che viene eseguita per estrarre i dati? E se cosi fosse hai qualche consiglio da darmi per agirare il problema degli invii multipli?
Grazie mille in anticipo.
 

Lelia11

Nuovo utente
20 Novembre 2019
5
3
24
Milano
Office 365
0
Provo a rifare il file da zero, compressa connessione ad SQL, e lo lascio girare stanotte. In caso domani taggo la discussione come risolta :)
Grazie mille.
 
  • Like
Reactions: Andrea Guerri

Lelia11

Nuovo utente
20 Novembre 2019
5
3
24
Milano
Office 365
0
Niente, il problema non rientra ma dopo un po di test il problema è sicuramente legato alla connessione ODBC. provo a strutturare il file modo diverso, magari pescando da un altro file con connessione ODBC che lascerò aperto in background.

Grazie a tutti.
 

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!