Condividi tramite

INVIO MAIL TRAMITE CONDIZIONE CON EXCEL

Anonimo
2013-05-24T10:03:16+00:00

Buongiornmo a tutti.

Avrei bisogno di una macro che mi permetta di inviare una mail qualora ci sia una determinata parola (es. SPEDISCI) in una cella di un file excel.

la parte dell'invio mail la farei così:

Set OutApp = CreateObject("Outlook.Application")

                        Set OutMail = OutApp.CreateItem(0)

                        With OutMail

                            .To = "indirizzo mail"

                            .Subject = "TESTARE Segnalazioni nel File Pianificazione Installazioni"

                            .BodyFormat = 2

                            .HTMLBody = "<html><body>Controllate per favore il File in oggetto in quanto SOLARI ha portato in ambiente di TEST delle segnalazioni che dovrete testare (qualora ce ne fossero di vostre) per la prossima messa in PRODUZIONE.</body></html>"

                            .Send

                        End With

                        Set OutMail = Nothing

                        Set OutApp = Nothing

e la vorrei appunto agganciare al fatto che invii la mail se nella cella es. A1 ci sia scritto 'SPEDISCI'

Spero di essere stato abbastanza chiaro.

Grazie mille in anticipo a tutti!!!

Max

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
2013-05-24T14:18:57+00:00

modifica la riga che fa il test da così

    ElseIf Target.Address(RowAbsolute:=False, ColumnAbsolute:=False) = "R36" Then

a così

    ElseIf Target.Address(RowAbsolute:=False, ColumnAbsolute:=False) = "R36" And _

        UCase(Target.Value) = "SPEDISCI" Then

David

La risposta è stata utile?

0 commenti Nessun commento

7 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2013-05-24T13:24:03+00:00

    La cella precisa è la R36.

    Quindi ricapitolando:

    se nella cella R36 io vado a scivere SPEDISCI, mi aspettto che il sitema spedisca una mail specifica come da seguente codice:

    Set OutApp = CreateObject("Outlook.Application")

                            Set OutMail = OutApp.CreateItem(0)

                            With OutMail

                                .To = "indirizzo mail"

                                .Subject = "TESTARE Segnalazioni nel File Pianificazione Installazioni"

                                .BodyFormat = 2

                                .HTMLBody = "<html><body>Controllate per favore il File in oggetto in quanto SOLARI ha portato in ambiente di TEST delle segnalazioni che dovrete testare (qualora ce ne fossero di vostre) per la prossima messa in PRODUZIONE.</body></html>"

                                .Send

                            End With

                            Set OutMail = Nothing

                            Set OutApp = Nothing

    Se riuscite a integrarmelo con la macro che ho già ve ne sarei grato.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2013-05-24T12:26:07+00:00

    Ciao Max,

    vedo che hai ripreso il precedente post Invio mail all'inserimento di una parola in cella excel.

    Dovresti però dirci dove si trova la tua cella.

    In linea di massima, seguendo il codice che già hai, dovresti inserire un ulteriore ElseIf  per individuare la posizione in cui avviene la modifica della cella e valutarne il contenuto.

    David

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2013-05-24T11:39:34+00:00

    Ciao!

    Io vorrei che se scrivo nella cella A1 del foglio1 mi mandi via la mail come da mio codice...

    Calcola che ho già questa macro attiva quindi dovrei incastracela dentro... :

    Private Sub Worksheet_Change(ByVal Target As Range)

        Dim a As String

        If Target.Column = 14 Then

            Select Case UCase(Target.Value)

                Case Is = ""

                    Exit Sub

                Case "SI"

            Set wk = Workbooks.Open("Y:\Giro librerie\2 - INSTALL RPR - PRO\NEW ITER" _

                        & "Comunicazioni a Utenti - Installazione PATCH.xlsm")

                     Set sh = wk.Worksheets("COMUNICAZIONE")

                     With sh

                        lRiga = .Range("A" & .Rows.Count).End(xlUp).Row + 1

                        .Range("A" & lRiga).Value = Me.Range("C" & Target.Row).Value

                        lRiga = .Range("B" & .Rows.Count).End(xlUp).Row + 1

                        .Range("B" & lRiga).Value = Me.Range("A" & Target.Row).Value

                        lRiga = .Range("C" & .Rows.Count).End(xlUp).Row + 1

                        .Range("C" & lRiga).Value = Me.Range("B" & Target.Row).Value

                     End With

            End Select

        ElseIf Target.Column = 1 Then

            Target.Offset(0, 5).Value = Date

            Target.Offset(0, 8).Value = "NON INSTALLATO"

        ElseIf Target.Column = 9 Then

            If Not Intersect(Target, Me.Range("I5:I34")) Is Nothing Then

                If Not Target.Count > 1 Then

                    Select Case UCase(Target.Value)

                        Case Is = "INSTALLATO"

                            Target.Offset(0, 2).Value = Target.Offset(0, -2).Value

                            Target.Offset(0, 3).Value = "Da Testare"

                        Case Is = "NON INSTALLATO"

                        Case Else

                    End Select

                End If

            End If

        End If

    End Sub

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2013-05-24T10:27:00+00:00

    Buongiornmo a tutti.

    Avrei bisogno di una macro che mi permetta di inviare una mail qualora ci sia una determinata parola (es. SPEDISCI) in una cella di un file excel.

     

    <cut>

    Spero di essere stato abbastanza chiaro.

     

    Grazie mille in anticipo a tutti!!!

    Max

    Non ho capito cosa ti manca.

    Vuoi inserirlo direttamente nella routine di invio e controllare che ci sia Spedisci in A1?

    Nel mio esempio è nel Foglio1, modifica con il tuo):

    Public Sub m()

        Dim sh As Workheet

        Set sh = ThisWorkbook.Worksheets("Foglio1")

        With sh

            If LCase(.Range("A1").Value) = "spedisci" Then

                'qui il codice di invio

            End If

        End With

        Set sh = Nothing

    End Sub

    Vuoi che sia inviata in automatico scrivendo nella cella A1?

    Da copia/incollare nel modulo di codice del foglio dove scrivi in A1:

    Private Sub Worksheet_Change(ByVal Target As Range)

        Dim lRisposta As Long

        With Target

            If .Cells.Count > 1 Then Exit Sub

            If .Address = "$A$1" Then

                If LCase(.Value) = "spedisci" Then

                    lRisposta = MsgBox("Inviare la mail?", _

                        vbYesNo + vbQuestion, _

                        "Richiesta invio")

                    If lRisposta = vbYes Then

                        'qui il codice di invio o la chiamata

                        'alla routine di invio(consigliato)

                    End If

                End If

            End If

        End With

    End Sub

    La risposta è stata utile?

    0 commenti Nessun commento