Da Excel a Outlook



  • Da Excel a Outlook
    di elkarmo (utente non iscritto) data: 01/05/2015 08:18:21

    Ciao a tutti ragazzi,

    vi scrivo perchè non sono molto bravo sull'uso di excel.
    Ogni giorno devo inviare un sacco di mail alle persone che partono per avvisarli di un servizio.
    Io ho un file excel (7x24.xlsx) in cui ci sono tutti i nominativi delle persone che partiranno.
    Ogni giorno il file viene aggiornato con i nuovi viaggiatori ( nella colonna A1 viene inserito il nome (es Mario Rossi), nella colonna B1 viene inserita la data di partenza (es 2/5/15) e nella colonna C1 viene inserita la data in cui è stata inserita la persona nel file excel (es 1/05/2015).

    Avevo creato questo metodo a mano in cui:
    Ogni lunedi avrei inviato le mail alle persone che sarebbero partite il giovedi della stessa settimana.
    Ogni martedi avrei inviato le mail alle persone che sarebbero partite il venerdi della stessa settimana.
    Ogni mercoledi avrei inviato le mail alle persone che sarebbero partire il sabato e domenica della stessa settimana.
    Ongi giovedi avrei inviato le mail alle persone che sarebbero partite il lunedi e martedi della settimana successiva.
    Ogni venerdi avrei inviato le mail alle persone che sarebbero partite il mercoledi della settimana successiva.

    Usando questo metodo, mi sono reso conto che se siamo a mercoledi e quindi dovrei inviare le mail per i partenti di Sabato e Domenica, e il file viene aggiornato con altre persone che sarebbero partite il venerdi della stessa settimana (quindi ho inviato il giorno prima le mail per loro), per queste nuove persone non avrei inviato nessuna mail e quindi l'avviso non sarebbe mai avvisato.ù

    Quindi ogni giorno da quando mi sono reso conto di questo errore, devo controllare se sono state aggiunte persone nei giorni precedenti...
    Riuscireste ad aiutarmi trovando un metodo veloce e preciso che può anche collegare Excel con Outlook?

    Grazie mille a tutti :)



  • di lepat (utente non iscritto) data: 01/05/2015 12:29:52

    non ho capito come attualmente utilizzi i dati su excel per inviare le mail


  • Da Excel a Outlook
    di elkarmo (utente non iscritto) data: 01/05/2015 12:31:57

    i dati li prendo manualmente dal file excel.. copio i nomi che mi interessano e li metto su outlook :)



  • di Marius44 data: 01/05/2015 18:21:30

    Ciao,
    ti invio in allegato il mio lavoro che ti spiego:
    Nella cella C1 vi è la funzione OGGI(); la cella è formattata per la data estesa come le colonne B, C ed E
    nella cella C2 vi è la seguente funzione:
    SE(GIORNO.SETTIMANA($C$1;2)<=3;$C$1+3;SE(GIORNO.SETTIMANA($C$1;2)=4;$C$1+4;SE(GIORNO.SETTIMANA($C$1;2)=5;$C$1+5;"")))
    in altre parole ti indica quali sono le persone da avvisare in base al giorno di partenza
    nella cella C3 vi è la seguente funzione:
    SE(GIORNO.SETTIMANA($C$1;2)=3;$C$1+4;SE(GIORNO.SETTIMANA($C$1;2)=4;$C$1+5;""))
    questa dà una risposta solo se nella cella C1 vi è un mercoledì o giovedì
    nella intera colonna D, sotto l'indicazione "da avvisare" vi è la seguente funzione
    SE(E(O($B6=$C$2;$B6=$C$3);$C6="");"si";"")
    questa evidenzia un "si" se la persona è da avvisare
    attenzione: se la cella corrispondente della colonna C non è vuota, non scrive nulla

    A questo punto occorre un esperto di Outlook (che non sono io) poiché una volta che nella colonna "E", a fianco all'indicazione "si", viene indicata una data la stessa macro dovrebbe:
    - scorrere l'elenco per individuare il "si" nella colonna "D"
    - inviare la mail alla persona (ma ci vogliono i riferimenti per l'indirizzo e il corpo del messaggio)
    - scrivere nella stessa riga ma nella colonna "C" la data di avviso

    Fammi sapere se ti va bene e, ti prego, farmi conoscere l'eventuale macro



  • di Marius44 data: 01/05/2015 19:47:37

    Ho provato ad adattare una Macro di Vecchio Frac (che saluto) e credo che vada bene. Ti allego il file e sotto scrivo le macro da associare a dei pulsanti ActiveX.
    Nell'invio della mail ho fatto apparire la finestra di Dialogo (e poi invii manualmente); se preferisci basta togliere l'apostrofo in '.Send e netterlo in .Dispay
    Forse sarebbe necessario un pulsante per eliminare le date passate.
    Tienimi al corrente.
     
    Private Sub CommandButton1_Click()
    Dim destinatario As String
    Dim TestoEmail As String
    Dim i As Integer
        Set OutApp = CreateObject("Outlook.Application") ' determino il sistema di posta
        riga = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row 'ultima riga piena
        'invio email
        Set OutMail = OutApp.CreateItem(0)
        For i = 6 To riga
            If Cells(i, 4) = "si" Then
                With OutMail
                .to = Cells(i, 5)               'a chi la mando
                .Subject = "Avviso partenza"    'oggetto della mail
                TestoEmail = Range("E1") & Cells(i, 2).Text & Range("E2").Text
                .Body = TestoEmail              'testo della mail
                '.Send                          'per inviare subito la mail
                .Display                        'per aprire e controllare la mail prima di inviarla manualmente
                Stop
                Cells(i, 3) = Now
                End With
            End If
        Next i
        MsgBox "Mail inviata/e con successo", vbInformation, "Avviso"
        Set OutMail = Nothing
        Set OutApp = Nothing
        Cells(1, 1).Select
    End Sub
    
    Private Sub CommandButton2_Click()
        ActiveWorkbook.Save: Application.Quit
    End Sub