Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

invio email ad elenco destinatari un giorno prima della scadenza

Ultimo Aggiornamento: 14/03/2019 15:25
Post: 1
Registrato il: 11/03/2019
Città: MACERATA
Età: 51
Utente Junior
2016
OFFLINE
11/03/2019 09:51

Buongiorno, ho cercato nel forum ma non essendo pratico di programmazione, non sono riuscito a trovare soluzioni.
Da un foglio excel con diverse colonne ho estrapolato nel file che allego quelle che mi interessa utilizzare: inviare in automatico una email da Outlook 2007, un giorno prima della partenza del corso, ad azienda e docente.
[Modificato da Carlitos2019 11/03/2019 11:03]
Post: 4.121
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
11/03/2019 10:36

Non c’è nessun file allegato.

Alfredo
Post: 1
Registrato il: 11/03/2019
Città: MACERATA
Età: 51
Utente Junior
2016
OFFLINE
11/03/2019 10:51

Buongiorno Alfredo, clicco su carica file, lo seleziono ma non lo carica.😭
[Modificato da Carlitos2019 11/03/2019 10:51]
Post: 4.122
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
11/03/2019 10:53

Strano prova a zipparlo.

Alfredo
Post: 2
Registrato il: 11/03/2019
Città: MACERATA
Età: 51
Utente Junior
2016
OFFLINE
11/03/2019 11:04

Fatto.
Post: 4.124
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
11/03/2019 11:49

Ciao

Prova con questa macro da inserire nel modulo di QuestaCartelladilavoro.

vb
Private Sub Workbook_Open()
    Dim i As Long
    Dim OutApp As Object
    Dim OutMail As Object
    Dim ur As Long
    Set OutApp = CreateObject("Outlook.Application")
    ur = Cells(Rows.Count, 4).End(xlUp).Row
    For i = 2 To ur
        If Range("D" & i).Value - Date = 1 Then
            Set OutMail = OutApp.CreateItem(0)
            With OutMail
                .to = Range("b" & i).Value & ";" & Range("a" & i).Value
                .Subject = "Corsi"
                .Body = Range("C" & i).Value
                .Display   'o .Display
            End With
            End If
        Next i
    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub


La macro viene eseguita ogni volta che viene aperta la cartella di lavoro.

Essa passa in rassegna le celle della colonna D (da D2 all'ultima piena) e se la differenza tra la data contenuta nella cella e quella odierna è uguale a 1 invia la mail.

Attualmente la macro ti fa vedere l'anteprima della mail; se vuoi inviarla devi cambiare .Display con .Send

Alfredo
Post: 3
Registrato il: 11/03/2019
Città: MACERATA
Età: 51
Utente Junior
2016
OFFLINE
11/03/2019 12:44

Grazie mille Alfredo! una domanda: vorrei mettere nell'oggetto della mail il titolo del corso, riprendendolo da una colonna "Titolo", è possibile?
[Modificato da Carlitos2019 11/03/2019 12:59]
Post: 4.125
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
11/03/2019 13:47

Ciao

Certo che è possibile.

Ma consentimi di non darti la risposta immediata.

Nel codice che ti ho dato (se lo hai capito) hai tutti gli elementi per poterci arrivare da solo.

Provaci altrimenti non si impara nulla.

Alfredo
Post: 4
Registrato il: 11/03/2019
Città: MACERATA
Età: 51
Utente Junior
2016
OFFLINE
11/03/2019 15:18

Sono d'accordo sul tuo approccio, l'ho capito in maniera logica ma non sapendo il linguaggio non so come tradurlo. Ci proverò comunque! :)
Posso almeno chiedere come faccio ad inserire la firma nel messaggio di posta che si genera aprendo il file?
Post: 4.126
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
11/03/2019 15:54

Devi scrivere nel codice che

.Subject deve essere uguale alla cella che contiene il titolo del corso (attento che sei in un ciclo For).

Non ho capito cosa intendi con questo


come faccio ad inserire la firma nel messaggio di posta che si genera aprendo il file?



Alfredo
Post: 5
Registrato il: 11/03/2019
Città: MACERATA
Età: 51
Utente Junior
2016
OFFLINE
11/03/2019 16:04

Grazie per la dritta!
Pe messaggio di Outlook: quando di apre in automatico il messaggio di posta elettronica non mi esce sotto la firma del mio nome e azienda.
Post: 4.127
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
11/03/2019 16:06

Mi spiace non uso Outlook (ho una webmail) per cui su questo non so rispondere.

Alfredo
Post: 6
Registrato il: 11/03/2019
Città: MACERATA
Età: 51
Utente Junior
2016
OFFLINE
11/03/2019 16:34

Ok. Grazie. Ho seguito il tuo consiglio e sono riuscito a mettere nell'oggetto il nome del corso. Non riesco però a fare questa cosa: ho collegato i campi che mi interessano per la macro in un altro foglio, in modo che quando compilo il foglio master poi mi ritrovo automaticamente nel foglio della macro i dati. Può capitare però di inserire una riga nuova tra due date all'interno del foglio master già compilato e non me la riporta sul secondo foglio, come mai?
Post: 4.128
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
11/03/2019 16:41

Questo mi sembra essere un altro quesito rispetto al precedente.

Apri quindi una nuova discussione allega il file e si riparte da lì.

Alfredo
Post: 8
Registrato il: 11/03/2019
Città: MACERATA
Età: 51
Utente Junior
2016
OFFLINE
12/03/2019 15:19

Re:
alfrimpa, 11/03/2019 13.47:

Ciao

Certo che è possibile.

Ma consentimi di non darti la risposta immediata.

Nel codice che ti ho dato (se lo hai capito) hai tutti gli elementi per poterci arrivare da solo.

Provaci altrimenti non si impara nulla.




Alfredo, scusami se ti disturbo ma mi sdono accorto di una cosa: usando il file oggetto della domanda in più persone durante la giornata ogni volta che lo apriamo si genera la mail. E' possibile inserire un comando che invii una volta sola le email in scadenza e non ogni volta che si apre il file?
Grazie
Post: 4.131
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
12/03/2019 15:27

E' una cosa che avevo già pensato mentre scrivevo il codice.

Non è una cosa difficile da realizzare.

1) aggiungi un nuovo campo alla tabella es INVIATO
2) quando una mail viene inviata inserisci un X nel campo INVIATO
3) nel ciclo For inserisci la condizione che la mail va inviata oltre che si sia un giorno prima della scadenza che non vi sia una X nel campo INVIATA.

in tal modo anche se il file viene riaperto le mail verranno inviate solo se sono rispettate tale condizioni.

Alfredo
Post: 13
Registrato il: 11/03/2019
Città: MACERATA
Età: 51
Utente Junior
2016
OFFLINE
14/03/2019 15:25

Grazie Alfredo!
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 06:10. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com