Ho un file di excel con due colonne (S) e (AD) che hanno delle scadenze.
Ho inserito in queste due colonne una formattazione condizionale che mi evidenzia in rosso le date già scadute.
La mia idea era di creare una Macro VBA che mi avvisasse con una mail delle scadenze (tipo il 28 Febbraio mi invia una mail con le scadenze previste per il 31 Marzo).
Nella mail dovrei riportare queste righe
DESCRIZIONE GARA (presente nella Colonna A)
DESCRIZIONE DITTA (presente nella Colonna J)
PROSSIMO PAGAMENTO (presente nella Colonna S e AD) dovrei creare un controllo doppio perchè potrei avere date in colonna S oppure solo in colonna AD oppure in entrambe
Il file si trova su una share condivisa, non ho Outlook che mi invia la mail ma la mail aziendale è su una finestra google.
Ho provato a creare un esempio senza riferimenti particolari. Potreste aiutarmi?
io ho provato così ma non so se è giusto:
- Codice: Seleziona tutto
Sub Invioemail()
Dim OutApp As Object, OutMail As Object
Dim EmailAddr As String, Subj As String
Dim BDT As String, I As Long, myCnt As Long 'FIN QUI SONO "DICHIARAZIONI"
' (a)
Sheets("Foglio1").Select '<<< Nome mio Foglio
'compilazione del testo della mail
BDT = "Elenco dei canoni in scadenza al " & Format(Date, "dd-mm-yyyy") & vbCrLf
For I = 2 To ur=range(“A” & rows.count).end(xlup).row
If IsDate cells(I, "S") and IsDate cells(I, "AD") Then
If Cells(I, "S") = Date and cells (I, "AD")=Date then
BDT = BDT & Cells(I, "A") & cells (I, "J")& vbCrLf
myCnt = myCnt + 1
End If
End If
Next I
BDT = BDT & vbCrLf & "Cordiali saluti" & vbCrLf
BDT = BDT & "Macroscadcanoni"
'' (b)
If myCnt = 0 Then Exit Sub 'Nessuna scadenza, si termina senza azioni
'
'DA QUI CREA E INVIA LA MAIL:
Set OutApp = CreateObject("Outlook.Application")
EmailAddr = "mara@libero.it" '<<< INDIRIZZO EMAIL
EmailAddr1 = "mara@gmail.com" '<<< INDIRIZZO EMAIL CC
Subj = "Scadenze CANONI del " & Format(Date, "dd-mm-yyyy") ' OGGETTO DELLA MAIL
Set OutMail = OutApp.CreateItem(0)
With OutMail
.to = EmailAddr
.CC = EmailAddr1
.BCC = ""
.Subject = Subj
.Body = BDT
'.Display 'or use .send
.send
End With
' (c)
Set OutMail = Nothing
' (d)
Set OutApp = Nothing
'
Application.Wait (Now + TimeValue("0:00:02"))
End Sub
Grazie in anticipo a quanti vorranno insegnarmi qualcosa