Allora, partendo da una delle tante soluzioni pubblicate ho preparato il seguente codice:
- Codice: Seleziona tutto
Sub MAILAUTOMATICA()
Dim otlApp As Object, otlNewMail As Object, I As Long
Dim TestoTesta As String, TestoCoda As String
'
TestoTesta = "Testo a piacere 1" '<<<
TestoCoda = "Cordiali saluti" & vbCrLf & "Pinco Palla" '<<<
'
Set otlApp = CreateObject("Outlook.Application")
For I = 2 To Cells(Rows.Count, "B").End(xlUp).Row
' If UCase(Cells(I, "F")) = "INVIA MAIL" And Cells(I, "G").Value < (Now - 10) Then
If Cells(I, "B").Value <> "" And Cells(I, "B").Value < (Now + 15) And Cells(I, "G").Value < (Now - 15) Then
Set otlNewMail = otlApp.CreateItem(olMailItem)
With otlNewMail
.To = Cells(I, "E").Value
.cc = "mioIndirizzo@mioDominio.zczc" '<<< Eventuale indirizzo cc
.Subject = "Prossima scadenza " & Cells(I, "C") & " (" & Format(Cells(I, "B").Value, "dd-mmm-yyyy") & ")"
.body = TestoTesta & vbCrLf & Cells(I, "C").Value & ", scadenza: " & Format(Cells(I, "B"), "yyyy-mmm-dd") & _
vbCrLf & TestoCoda
.Display
' .send.nonConsigliato
End With
Cells(I, "G").Value = Int(Now)
Application.Wait (Now + TimeValue("0:00:02"))
Set otlNewMail = Nothing
End If
Next I
Set otlApp = Nothing
End Sub
Questa si comporta come segue:
-lavora sulle righe che in colonna B (prossima scadenza) hanno una data compilata
-se la scadenza in colonna B e' entro i prossimi 15 giorni, E in colonna G c'e' una data che e' piu' vecchia di 10 gg, allora fa scattare l'invio email
-il contenuto di col F e' ignorato
-la macro segna in Colonna G la data di invio di una mail; una ulteriore mail potra' partire solo se la data in colonna G e' piu' vecchia di 15 gg rispetto a "oggi". Quindi ci sono 15 giorni perche' la data di scadenza venga aggiornata.
-poiche' le mail sono verso terzi, la macro si limita a visualizzare l'email pronta; tocca a te premere Invio se sei convinto, oppure cancellare l'email se sai che non e' il caso di sollecitare.
-la macro richiede che colonna G sia libera, perche' verra' usata per scriverci la data di invio mail. Se G non e' disponibile allora va adattata la macro in un paio di punti.
-il testo dell'email contiene un preambolo comune, il contenuto di colonna C e la sua scadenza, un postambolo comune; preambolo e postambolo sono liberi (vedi le istruzioni marcate <<<).
-la mail e' prevista vada in cc a un indirizzo che immagino debba essere il tuo, da personalizzare.
Quanto alla colonna A della tua tabella, che dici contiene la data odierna, non ne vedo l'utilita'; io l'ho ignorata.
Operativamente:
Da excel: Alt-F11 per aprire l' editor delle macro; Menu /Inserisci /Modulo; copia il codice e incollalo nel frame di dx.
Personaliza le istruzioni marcate <<<
Torna su Excel e salva il file (in formato .xlsm).
Quando vuoi far partire la mail di notifica avvia la Sub MAILAUTOMATICA; da Excel: Alt-F8, scegli MAILAUTOMATICA dall'elenco di macro disponibili, premi Esegui.
Se vuoi eseguira la macro all'apertura del file segui le istruzioni gia' date a ubuntus qui:
viewtopic.php?f=26&t=105088&p=615665#p613724Ciao