Inviare mail da Excel con Outlook 2010

Anonimo
2015-04-04T17:12:17+00:00

Salve,

ho un file strutturato con queste colonne:

codice - fornitore - indirizzo mail - scadenza - aggiornamento - stato richiesta

La cella F1 contiene la funzione oggi() che determina la data all'apertura del file.

Avrei bisogno di inviare una mail agli indirizzi contenuti nella colonna C solo a quei fornitori per i quali il documento risulta scaduto (data contenuta nella cella Dxxx < alla data contenuta della cella F1)

Attenzione! l'invio della mail NON deve essere automatico ma deve essere effettuato manualmente, magari premendo un tasto "invio mail" per i fornitori che rispettino la condizione di cui sopra.

Come ultima cosa mi serve inserire un testo standard per la mail, con una firma finale.

Ringrazio in anticipo per l'aiuto che vorrete darmi,

buona serata

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2015-04-05T09:00:58+00:00

Ti ringrazio per la risposta, ma come faccio a inviare la mail solo ai fornitori che rispettano la condizione sotto riportata?

La cella F1 contiene la funzione oggi() che determina la data all'apertura del file.

Avrei bisogno di inviare una mail agli indirizzi contenuti nella colonna C solo a quei fornitori per i quali il documento risulta scaduto (data contenuta nella cella Dxxx < alla data contenuta della cella F1)

Devi impostare un filtro nella Stampa Unione.

In Word: barra Lettere/Modifica Elenco Destinatari.

Vedi la figura seguente

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2015-04-05T08:23:32+00:00

Ciao Icebrand ,

Ti ringrazio per la risposta, ma come faccio a inviare la mail solo ai fornitori che rispettano la condizione sotto riportata?

La cella F1 contiene la funzione oggi() che determina la data all'apertura del file.

Avrei bisogno di inviare una mail agli indirizzi contenuti nella colonna C solo a quei fornitori per i quali il documento risulta scaduto (data contenuta nella cella Dxxx < alla data contenuta della cella F1)

  • Alt-F11**** per aprire l'editor di VBA
  • Alt-IM per inserire un nuovo modulo di codice
  • Nel nuovo modulo vuoto, incolla il seguente codice:

'=========>>

Option Explicit

'--------->>

Public Sub Tester()

    Dim WB As Workbook

    Dim SH As Worksheet

    Dim Rng As Range, rngData As Range

    Dim dDate As Date

    Dim oOutApp As Object

    Dim oOutMail As Object

    Dim rCell As Range

    Dim LRow As Long

    Dim sCorpo As String

    Const sNomeDiFoglio As String = "Foglio1"                          '<<=== Modifica

    Const PrimaRiga As Long = 4 '<<=== Modifica

    Const sIndirizzoData As String = "F1"                                    '<<=== Modifica

    Const sSoggetto As String = _

          "Un promemoria - Scadenza di Contratto"                   '<<=== Modifica

    Set WB = ThisWorkbook

    Set SH = WB.Sheets(sNomeDiFoglio)

    With SH

        LRow = LastRow(SH, .Columns("A:A"))

        Set Rng = .Range("A" & PrimaRiga & ":A" & LRow)

        Set rngData = .Range(sIndirizzoData)

        dDate = rngData.Value

    End With

    On Error GoTo XIT

    Application.ScreenUpdating = False

    Set oOutApp = CreateObject("Outlook.Application")

    For Each rCell In Rng.Cells

        With rCell

            .Select

            If IsDate(.Offset(0, 3).Value) _

               And .Offset(0, 3).Value < dDate Then

                If .Offset(0, 2).Value Like "?*@?*.?*" Then

                    sCorpo = "Egregio " & .Offset(0, 1).Value _

                           & vbNewLine & vbNewLine & _

                             "Vi preghiamo di contattarci per discutere il contratto " _

                           & "il quale risulta scaduto il " _

                           & vbNewLine _

                           & vbTab & vbTab & vbTab _

                           & Format(.Offset(0, 3).Value, "dd,mmmm yyyy")

                    Set oOutMail = oOutApp.CreateItem(0)

                    On Error Resume Next

                    With oOutMail

                        .To = rCell.Offset(0, 2).Value

                        .Subject = sSoggetto

                        .Body = sCorpo

                        'You can add files also like this

                        '.Attachments.Add ("C:\test.txt")

                        .Display    '\ per vedere la email prima di inviarla; per inviarla automaticamente, 

                                        '\ sostituisci .Display con .Send

                    End With

                    On Error GoTo 0

                    Set oOutMail = Nothing

                End If

            End If

        End With

    Next rCell

XIT:

    Set oOutApp = Nothing

    Application.ScreenUpdating = True

End Sub

'--------->>

Public Function LastRow(SH As Worksheet, _

                        Optional Rng As Range)

    If Rng Is Nothing Then

        Set Rng = SH.Cells

    End If

    On Error Resume Next

    LastRow = Rng.Find(What:="*", _

                       after:=Rng.Cells(1), _

                       Lookat:=xlPart, _

                       LookIn:=xlFormulas, _

                       SearchOrder:=xlByRows, _

                       SearchDirection:=xlPrevious, _

                       MatchCase:=False).Row

    On Error GoTo 0

End Function

'<<========= 

  • Alt-Q per chiudere l'editor di VBA e tornare a Excel.
  • Alt-F8 per aprire  la finestra di gestione delle macro
  • Seleziona Tester | Esegui

Potresti scaricare il mio file di prova Icebrand210150405.xlsm a: **http://1drv.ms/1EZIrGQ**

===

Regards,

Norman

La risposta è stata utile?

0 commenti Nessun commento

3 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2015-04-05T19:12:00+00:00

    Perfetto, ho risolto!

    Grazie mille ad entrambi,

    buona serata

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2015-04-04T22:01:07+00:00

    Ti ringrazio per la risposta, ma come faccio a inviare la mail solo ai fornitori che rispettano la condizione sotto riportata?

    La cella F1 contiene la funzione oggi() che determina la data all'apertura del file.

    Avrei bisogno di inviare una mail agli indirizzi contenuti nella colonna C solo a quei fornitori per i quali il documento risulta scaduto (data contenuta nella cella Dxxx < alla data contenuta della cella F1)

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2015-04-04T18:27:24+00:00

    Salve,

    ho un file strutturato con queste colonne:

    codice - fornitore - indirizzo mail - scadenza - aggiornamento - stato richiesta

    La cella F1 contiene la funzione oggi() che determina la data all'apertura del file.

    Avrei bisogno di inviare una mail agli indirizzi contenuti nella colonna C solo a quei fornitori per i quali il documento risulta scaduto (data contenuta nella cella Dxxx < alla data contenuta della cella F1)

    Attenzione! l'invio della mail NON deve essere automatico ma deve essere effettuato manualmente, magari premendo un tasto "invio mail" per i fornitori che rispettino la condizione di cui sopra.

    Come ultima cosa mi serve inserire un testo standard per la mail, con una firma finale.

    Ringrazio in anticipo per l'aiuto che vorrete darmi,

    buona serata

    Usa Stampa Unione di Word.

    Qui ti spiega anche come filtrare i record.

    https://support.office.com/it-it/article/Utilizzare-la-stampa-unione-per-inviare-messaggi-di-posta-elettronica-personalizzati-allelenco-indirizzi-di-posta-c49e5cfc-53f9-4ec8-9bd9-1f8f3648f1b7

    La risposta è stata utile?

    0 commenti Nessun commento