INVIO MAIL IN AUTOMATICO

Versione Completa   Stampa   Cerca   Utenti   Iscriviti     Condividi : FacebookTwitter
ARIANNAM
00lunedì 29 maggio 2017 17:20

Ciao a tutti,
vorrei risolvere il problema relativo ad un invio di un email di avviso.
Cerco di spiegarmi meglio.

Ho una tabella con le seguenti colonne

A B C D E

NOME AZIENDA DOCUEMENTO E-MAIL SCADENZA GG MANCANTI



Quando nella casella " gg mancanti " arriva a segnare il valore 30 ( quindi a 30 gg dalla scadenza ), vorrei che inviasse un' e-mail per poter avvisare della scadenza.

Oppure anche semplicemente si formasse un "avviso" sul calendario thundembird.

Ho Excel 2007 e mozilla thunderbird.

Non so se questo sia possibile o no però ci provo.
Chiedere non costa nulla.
Buona giornata :D
Chilhowee
00lunedì 26 giugno 2017 18:45
Ciao a tutti, [SM=g27823]
sono alle prime armi con VBA, mi sono iscritto da poco e mi sono imbattuto per caso in questa discussione.
Ho adattato la porzione di codice di un piccolo progetto a cui sto lavorando, essendo il mio primo post non mi consente di inserire un allegato, che potete trovare qui http://www.cjoint.com/c/GFAqB3XKoEj.

(Testato con Excel 2013 e 2016 e Thunderbird 52.2.0, di seguito il codice della macro:

Sub MailThunderbird()
       Dim InviaMail, Destinatario, Oggetto, Corpo, Dati As String 
LastRow = Range("A" & Rows.Count).End(xlUp).Row
For Each cell In Range("A2:A" & LastRow)
If Cells(cell.Row, 5) = "30" Then        
    Destinatario = Cells(cell.Row, 3)
    Oggetto = Cells(cell.Row, 2) 
    Corpo = "Si ricorda che è in scadenza il documento in oggetto.%0a%0aCordiali saluti.%0a%0aUfficio Amministrazione" 'I caratteri %0a%0a indicano l’interruzione di linea
InviaMail = "C:\Program Files\Mozilla Thunderbird\thunderbird.exe" 'Adatta il percorso a seconda della versione e del sistema operativo in uso
    Dati = " -compose " & "to=" & Destinatario & "," & "subject=" & Oggetto & "," & "body=" & Corpo
Shell InviaMail & Dati, vbNormalFocus
Application.Wait (Now + TimeValue("0:00:03"))
SendKeys "^{ENTER}", True 'Invio automatico 
End If
Next cell
End Sub


N.B.
Occorre eventualmente modificare il percorso ed il nome del file che varia secondo il sistema operativo.
Per eseguire l'invio automatico bisogna deselezionare nelle opzioni di TB (menu Strumenti -> Opzioni -> Composizione) la casella "Chiedi conferma quando si utilizza una scorciatoia da tastiera per inviare il messaggio". Se si preferisce che anziché inviare automaticamente i messaggi gli stessi vengano inseriti nella cartella Posta in uscita per potere fare eventuali controlli o aggiungere testo, sostituire il comando SendKeys "^{ENTER}", True con SendKeys "^+{ENTER}", True
alfrimpa
00lunedì 26 giugno 2017 18:55
Ciao Ferruccio e benvenuto.

Nel tuo codice manca la dichiarazione della variabile Cell come Range.

In caso di presenza nel modulo dell'istruzione "Option Explicit" (che è sempre un bene inserire) manderebbe in errore la macro.
Chilhowee
00lunedì 26 giugno 2017 20:11
Ciao Alfredo,
Grazie mille per la correzione e per il suggerimento,
dovrebbe bastare inserire le variabili non dichiarate dopo la seconda riga di codice

Dim lastrow As Long
Dim cell As Range
alfrimpa
00lunedì 26 giugno 2017 21:50
Si Ferruccio esattamente

Per lastrow potrebbe bastare anche Integer se il numero di record è inferiore a 32.000 circa (giusto per risparmiare risorse di memoria [SM=g27828] )

Comunque complimenti per uno che ha iniziato da poco con il VBA è un ottimo risultato [SM=g27811]
Questa è la versione 'lo-fi' del Forum Per visualizzare la versione completa clicca qui
Tutti gli orari sono GMT+01:00. Adesso sono le 01:13.
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com