Skip to main content

Come inviare un'email se la data di scadenza è stata raggiunta in Excel?

Author: Siluvia Last Modified: 2025-05-29

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à.

sample data

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:

vba code to select the due date column

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:

 vba code to select the recipients’ email addresses

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.

vba code to select the content you want to display in the email body

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.

an email is created  with the specified recipient, subject and body listed out if the due date

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.

a screenshot of kutools for excel ai

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.
Potenzia le tue capacità di Excel con strumenti alimentati dall'IA. Scarica Ora ed esperisci un'efficienza mai vista prima!

Articoli correlati:

I migliori strumenti per la produttività in Office

🤖 Kutools AI Aide: Rivoluziona l'analisi dei dati grazie a: Esecuzione Intelligente | Genera Codice | Crea Formule Personalizzate | Analizza Dati e Genera Grafici | Richiama Funzioni avanzate di Kutools
Funzionalità popolari: Trova, evidenzia o contrassegna duplicati | Elimina righe vuote | Unisci colonne o celle senza perdere dati | Arrotonda...
Super RICERCA.VERT: Ricerca VERT con criteri multipli | Ricerca VERT con valori multipli | Ricerca su più fogli | Corrispondenza approssimativa...
Elenco a discesa avanzato: Crea rapidamente un elenco a discesa | Elenco a discesa dipendente | Elenco a discesa multi-selezione...
Gestione Colonne: Aggiungi un numero specifico di colonne | Sposta colonne | Attiva/disattiva la visibilità delle colonne nascoste | Confronta intervalli e colonne...
Funzionalità in evidenza: Attenzione della griglia | Visualizzazione di progettazione | Barra delle formule avanzata | Gestione Cartella di lavoro e Foglio di lavoro | Libreria AutoText | Selettore di data | Unisci dati | Crittografa/Decrittografa celle | Invia Email tramite elenco | Super Filtri | Filtro speciale (filtra grassetto/corsivo/barrato...) ...
Top15 set di strumenti:12 strumenti di testo (Aggiungi testo, Elimina Caratteri Specifici, ...) | Oltre50 tipi di grafici (Diagramma di Gantt, ...) | Oltre40 formule pratiche (Calcola l'età in base alla data di nascita, ...) |19 strumenti di inserimento (Inserisci codice QR, Inserisci Immagine da percorso, ...) |12 strumenti di conversione (Converti in parole, Conversione valuta, ...) |7 strumenti di unione e divisione (Unione avanzata righe, Dividi celle, ...) | ... e molto altro

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!