Come inviare un'email se la data di scadenza è stata raggiunta in Excel?
Come mostrato nello screenshot sottostante, se la data di scadenza nella colonna C è minore o uguale a 7 giorni (ad esempio, la data corrente è il 13/9/2017), viene inviata un'email al destinatario specificato nella colonna A e il contenuto specificato nella colonna B viene visualizzato nel corpo dell'email. Come si può fare per realizzarlo? Questo articolo fornisce un codice VBA per aiutarti a completare questa attività.
Invia email se la data di scadenza è stata raggiunta con il codice VBA
Invia email se la data di scadenza è stata raggiunta con il codice VBA
Si prega di seguire i passaggi seguenti per inviare un promemoria via email se la data di scadenza è stata raggiunta in Excel.
1. Premere contemporaneamente i tasti Alt + F11 per aprire la finestra Microsoft Visual Basic for Applications.
2. Nella finestra Microsoft Visual Basic for Applications, fare clic su Inserisci > Modulo. Quindi copiare e incollare il seguente codice VBA nella finestra Modulo.
Codice VBA: Invia email se la data di scadenza è vicina in Excel
Public Sub CheckAndSendMail()
'Updated by Extendoffice 2018/11/22
Dim xRgDate As Range
Dim xRgSend As Range
Dim xRgText As Range
Dim xRgDone As Range
Dim xOutApp As Object
Dim xMailItem As Object
Dim xLastRow As Long
Dim vbCrLf As String
Dim xMailBody As String
Dim xRgDateVal As String
Dim xRgSendVal As String
Dim xMailSubject As String
Dim i As Long
On Error Resume Next
Set xRgDate = Application.InputBox("Please select the due date column:", "KuTools For Excel", , , , , , 8)
If xRgDate Is Nothing Then Exit Sub
Set xRgSend = Application.InputBox("Please select the recipients?email column:", "KuTools For Excel", , , , , , 8)
If xRgSend Is Nothing Then Exit Sub
Set xRgText = Application.InputBox("Select the column with reminded content in your email:", "KuTools For Excel", , , , , , 8)
If xRgText Is Nothing Then Exit Sub
xLastRow = xRgDate.Rows.count
Set xRgDate = xRgDate(1)
Set xRgSend = xRgSend(1)
Set xRgText = xRgText(1)
Set xOutApp = CreateObject("Outlook.Application")
For i = 1 To xLastRow
xRgDateVal = ""
xRgDateVal = xRgDate.Offset(i - 1).Value
If xRgDateVal <> "" Then
If CDate(xRgDateVal) - Date <= 7 And CDate(xRgDateVal) - Date > 0 Then
xRgSendVal = xRgSend.Offset(i - 1).Value
xMailSubject = xRgText.Offset(i - 1).Value & " on " & xRgDateVal
vbCrLf = "<br><br>"
xMailBody = "<HTML><BODY>"
xMailBody = xMailBody & "Dear " & xRgSendVal & vbCrLf
xMailBody = xMailBody & "Text : " & xRgText.Offset(i - 1).Value & vbCrLf
xMailBody = xMailBody & "</BODY></HTML>"
Set xMailItem = xOutApp.CreateItem(0)
With xMailItem
.Subject = xMailSubject
.To = xRgSendVal
.HTMLBody = xMailBody
.Display
'.Send
End With
Set xMailItem = Nothing
End If
End If
Next
Set xOutApp = Nothing
End Sub
Note: La riga If CDate(xRgDateVal) - Date <= 7 And CDate(xRgDateVal) - Date > 0 Then nel codice VBA significa che la data di scadenza deve essere maggiore di 1 giorno e minore o uguale a 7 giorni. È possibile modificarla secondo le proprie esigenze.
3. Premere il tasto F5 per eseguire il codice. Nel primo riquadro di dialogo Kutools for Excel che appare, selezionare l'intervallo della colonna della data di scadenza e quindi fare clic sul pulsante OK. Vedere lo screenshot:
4. Successivamente, appare il secondo riquadro di dialogo Kutools for Excel, selezionare l'intervallo della colonna corrispondente che contiene gli indirizzi email dei destinatari e fare clic sul pulsante OK. Vedere lo screenshot:
5. Nell'ultimo riquadro di dialogo Kutools for Excel, selezionare il contenuto che si desidera visualizzare nel corpo dell'email e quindi fare clic sul pulsante OK.
Verrà quindi creata automaticamente un'email con il destinatario specificato, l'oggetto e il corpo elencati, se la data di scadenza nella colonna C è minore o uguale a 7 giorni. Fare clic sul pulsante Invia per inviare l'email.
Note:
1. Ogni email creata corrisponde a una data di scadenza. Ad esempio, se ci sono tre date di scadenza che soddisfano i criteri, verranno create automaticamente tre email.
2. Questo codice non verrà attivato se non ci sono date che soddisfano i criteri.
3. Il codice VBA funziona solo quando si utilizza Outlook come programma di posta elettronica.

Sblocca la Magia di Excel con Kutools AI
- Esecuzione Intelligente: Esegui operazioni sulle celle, analizza i dati e crea grafici — tutto guidato da semplici comandi.
- Formule Personalizzate: Genera formule su misura per ottimizzare i tuoi flussi di lavoro.
- Codifica VBA: Scrivi e implementa codice VBA senza sforzo.
- Interpretazione delle Formule: Comprendi facilmente formule complesse.
- Traduzione del Testo: Superare le barriere linguistiche all'interno dei tuoi fogli di calcolo.
Articoli correlati:
- Come inviare automaticamente un'email in base al valore della cella in Excel?
- Come inviare un'email tramite Outlook quando la cartella di lavoro viene salvata in Excel?
- Come inviare un'email se una determinata cella viene modificata in Excel?
- Come inviare un'email se un pulsante viene cliccato in Excel?
- Come inviare un promemoria o una notifica via email se la cartella di lavoro viene aggiornata in Excel?
I migliori strumenti per la produttività in Office
Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un'efficienza mai vista prima. Kutools per Excel offre oltre300 funzionalità avanzate per aumentare la produttività e risparmiare tempo. Clicca qui per ottenere la funzione di cui hai più bisogno...
Office Tab porta l'interfaccia a schede in Office e rende il tuo lavoro molto più semplice
- Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede della stessa finestra, invece che in nuove finestre.
- Aumenta la tua produttività del50% e riduce centinaia di clic del mouse ogni giorno!