Flash30005 ha scritto:In un modulo inserisci l'intero codice
- Codice: Seleziona tutto
Public EffInv As Integer
Sub Invia_Email_Allegati()
If EffInv = 1 Then
Dim OutApp As Object
Dim OutMail As Object
Dim EmailAddr As String
Dim Subj As String
Dim BodyText As String
Dim fs, f
Perc = "C:\Temp\" '<<<< tuo percorso file da allegare
Pf1.Name = "Auguri.pdf" '<<<<< nome del file .pdf da allegare
Foglio1.Select
Set OutApp = CreateObject("Outlook.Application")
OutApp.Quit
Set OutApp = Nothing
Application.Wait (Now + TimeValue("0:00:05"))
' RR contiene il numero di utenti cui inviare le e-mail (1 per utente)
RR = Range("B" & Rows.Count).End(xlUp).Row
' I dati iniziano dalla quarta riga
For I = 4 To RR
If Day(Range("B" & I).Value) = Day(Date) And Month(Range("B" & I).Value) = Month(Date) And Cells(I, 6).Value = "" Then
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
' La colonna "C" contiene gli indirizzi e-mail dei vari destinatari
.To = Cells(I, 3)
.Subject = Cells(I, 4)
' La colonna "E" contiene l testo della e-mail
.Body = Cells(I, 5)
.Attachments.Add (Perc & Pf1.Name)
.Send
'MsgBox ("mail inviata")
Cells(I, 6).Value = Cells(1, 6).Value
Application.Wait (Now + TimeValue("0:00:02"))
End With
Set fs = Nothing
Set f = Nothing
Set NFile = Nothing
Set OutMail = Nothing
Set OutApp = Nothing
Application.Wait (Now + TimeValue("0:00:03"))
End If
Next I
MsgBox ("Invio completato")
End If
End Sub
Sostituisci il percorso e il nome del file.pdf che devi allegare dove indicato
Nel Vba di ThisWorkbook o Questa_cartella_di_lavoro inserisci questo codice
- Codice: Seleziona tutto
Private Sub Workbook_Open()
RR = Range("B" & Rows.Count).End(xlUp).Row
If Year(Date) <> Foglio1.Range("F1").Value Then
Columns(6).ClearContents
Foglio1.Range("F1").Value = Year(Date)
End If
For I = 4 To RR
If Day(Range("B" & I).Value) = Day(Date) And Month(Range("B" & I).Value) = Month(Date) Then
EffInv = 1
Invia_Email_Allegati
Exit Sub
End If
Next I
End Sub
La colonna D l'ho riservata per l'oggetto della email (Auguri o altra ricorrenza)
la colonna F, invece, serve per evitare di inviare una ulteriore email nel caso che il file di excel venga aperto due volte nell'arco della giornata. In pratica ogni volta che viene inviata l'email, viene trascritto l'anno (2013) in corrispondenza della scadenza, questa scrittura fa si di non inviare una seconda email.
Inoltre la colonna F viene resettata ad ogni cambiamento di anno per far sì che nel nuovo anno vengano rispettate tutte le ricorrenze.
Per maggior chiarezza invio questo file
ciao
Mamma !!! ora lavoro spero di riuscire e intanto mille grazie