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

INVIO MAIL IN AUTOMATICO

Ultimo Aggiornamento: 26/06/2017 21:50
Post: 31
Registrato il: 08/03/2017
Città: LECCO
Età: 31
Utente Junior
2013
OFFLINE
29/05/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
Post: 0
Registrato il: 30/05/2017
Città: AOSTA
Età: 62
Utente Junior
2013
OFFLINE
26/06/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
Post: 3.315
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
26/06/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.

Alfredo
Post: 1
Registrato il: 30/05/2017
Città: AOSTA
Età: 62
Utente Junior
2013
OFFLINE
26/06/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
[Modificato da Chilhowee 26/06/2017 21:44]
Post: 3.316
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
26/06/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]

Alfredo
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 20:40. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com