Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Email, excel, invia più tardi

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Email, excel, invia più tardi

Postdi Max383 » 26/03/16 00:08

Buongiorno,

Leggendo vari topic di questo sito (veramente ricco di contenuti, complimenti!) ho copiato le due seguenti macro per inviare email da excel. Esse permettono, semplicemente andando con il cursore su una determinata cella excel, di caricare una email precompilata con l'indirizzo email del destinatario, l'oggetto e il testo dell'email. A me servirebbe che in automatico tale email precompilata andasse nella cartella "email da spedire più tardi". Uso thunderbird e non so se è utile come informazione, lo shortcut per attivare tale funzione è control+shift+return.

Ecco la prima macro che ho inserito nell'editor:

Public Dest, Oggetto, CorpoM As String
Private Declare Function ShellExecute Lib "Shell32.dll" _
Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long

Sub Macro_Flash()
Dim URL As String
URL = "mailto:" & Dest & "?subject=" & Oggetto & "&body=" _
& Replace(CorpoM, Chr(10), "/" & vbCrLf & "\")
URL = Left(URL, 2025)
ShellExecute 0&, vbNullString, URL, vbNullString, vbNullString, vbNormalFocus
End Sub


Ed ecco invece la seconda che ho inserito nel codice del singolo foglio excel.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column <> 1 Or Target.Value = "" Then Exit Sub
Dest = Target.Value
Oggetto = Range("D" & Target.Row).Value
CorpoM = Range("F" & Target.Row).Value
Macro_Flash
End Sub

Un saluto,

Max
Max383
Newbie
 
Post: 1
Iscritto il: 25/03/16 23:56

Sponsor
 

Re: Email, excel, invia più tardi

Postdi Anthony47 » 02/04/16 19:04

Ciao Max383, benvenuto nel forum.
Non sono in grado di proporti una soluzione "diretta", e sinceramente credo che usando "mailto" non si possa nemmeno fare; d'altra parte Thunderbird per quello che ne so non ha una libreria di comandi per interfacciarsi con il vba.

Visto che non sono arrivati suggerimenti, la mia proposta e' di realizzare un "Invia dopo" su excel; nel senso che la macro di Worksheet_SelectionChange (che io trasformerei comunque in una Worksheet_BeforeDoubleClick, per evitare che partano macro solo perche' mi sono spostato in un'altra cella) scrive in una colonna libera a che ora la mail deve partire.
Poi ogni 5 minuti una macro "On Time" sonda tutte le righe del tuo foglio e se trova una mail "scaduta" (cioe' siamo oltre l'orario pianificato di invio) procede con l'invio immediato.

Questo presuppone che il file Excel rimanga aperto per tutto il tempo in cui si prevede di dover inviare mail.

Fai sapere se l'approccio e' idoneo...
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Email, excel, invia più tardi":


Chi c’è in linea

Visitano il forum: wallace&gromit e 13 ospiti