invio email in excel senza outlook

Anonimo
2015-07-06T08:53:53+00:00

Salve a tutti,

tra gli esempi che ho visionato non ho trovato niente che possa fare al mio caso.

Con Excel 2010 ho creato un programma di fatturazione che a fine mese mi stampa o salva in PDF le fatture che devo spedire via email, il problema è che non uso Outlook ma apro la posta con Explorer.

ho provato ad impostare decine di esempi senza riuscire a risolvere niente.

Allego una foto del foglio di lavoro da cui cerco di spedirle per spiegare quello che sto cercando di fare, nell'area Q4:AG4 ho i dati del cliente e nella cella AC2 quelli da cui spedisco l'email.

Grazie

Roberto

 

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-07-21T15:54:58+00:00

Ciao Roberto,

La macro funziona alla perfezione,

Bene! Mi fa piacere che funziona.

sto mettendo a confronto i vari esempi per capire meglio la modalità di programmazione e imparare qualcosa di più, ma non mi è facile,

Bravo! In questo modo si impara! 

inoltre sto cercando di cambiare l'impostazione della visualizzazione nel body della mail, come ad esempio mettere l'immagine sotto la dicitura ma non ci riesco, ho provato a cambiare l'ordine delle istruzione ma non risolvo niente.

ma sono sicuro che prima o poi ci riuscirò

Nel caso che dovesse essere poi anziché prima, potresti voler provare la seguente versione:

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

Option Explicit

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

Public Sub EmailConImmagineSottoFirma()

    Dim OutApp As Object

    Dim OutMail As Object

    Dim WB As Workbook

    Dim SH As Worksheet

    Dim rCell As Range

    Dim Rng As Range

    Dim sStr As String, aStr As String, sImmagine As String

    Dim LRow As Long

    Const sPercorsoFileImmagine ="C:\AB\FOTO" '<<=== Modifica

    Const sFileImmagine ="Logo.jpg" '<<=== Modifica

    Const sFoglio As String = "FE"                                           '<<=== Modifica

    Set WB = ThisWorkbook

    Set SH = WB.Sheets(sFoglio)

    With SH

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

        Set Rng = .Range("AC4:AC" & LRow)

    End With

    sImmagine = "'" & sPercorsoFileImmagine & sFileImmagine & "'"

    For Each rCell In Rng.Cells

        If rCell.Value Like "?*@?*.?*" Then

            Set OutApp = CreateObject("Outlook.Application")

            Set OutMail = OutApp.CreateItem(0)

            On Error Resume Next

            With OutMail

                .Display                                         '<<=== NON modifica!!

                .To = rCell.Value    

                .CC = ""

                .BCC = ""

                .Subject = rCell.Offset(0, 3).Value 

                aStr = rCell.Offset(0, 4).Value & Space(1) _

                     & rCell.Offset(0, -1).Value

                .HTMLBody = aStr & "<br>" & .HTMLBody

                .HTMLBody = .HTMLBody & "<HTML><img src=" _

                          & sImmagine & " alt='' width=300 height=300></HTML>"

                .Display

            End With

            Set OutMail = Nothing

        End If

    Next rCell

XIT:

    On Error GoTo 0

    Set OutMail = Nothing

    Set OutApp = Nothing

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

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

Visto che abbiamo viaggiato abbastanza lontano dall'ambito della tua domanda iniziale,  e che ad ogni passo, hai riconosciuto ciascun codice diverso come pienamente rispondente alla domanda in questione, al fine di chiudere questo thread, vorrei gentilmente chiederti di segnare la risposta, o le risposte rilevante come Risposta. In questo modo, tu aiuterai anche coloro che potrebbero cercare soluzioni ai problemi simili negli archivi della Community. 

Se questo thread dovesse ispirare altre strade di codice o altre domande, saremo lieti di rispondere a eventuali nuovi thead.

Alla prossima.

===

Regards,

Norman

La risposta è stata utile?

0 commenti Nessun commento

13 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2015-07-11T10:11:45+00:00

    Grazie David, ottima formula,

    io avevo inserito un'istruzione usando le vecchie macro 4.0 ma la tua mi semplifica il lavoro.

    Adesso sto cercando di inserire nel .Body un'immagine (logo aziendale) e del testo formattato in modo da rendere l'email più professionale, per cui mano ai manuali e al lavoro.

    Ciao e buon Weekend

    Roberto

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2015-07-10T16:51:30+00:00

    Ciao Roberto,

    Chiedo scusa, ti ho data la versione inglese della formula! Prova invece:

           ="C:\AB\EmailPDF" & TESTO(L31;"YYYYMMMM")&M31&O31&".Pdf"

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2015-07-10T16:48:00+00:00

    Ciao Roberto,

    Ipotizzando che si trovino la data nella colonna L, il numero di fattura nella colonna M e il CodClio in colonna O, nella cella AH31 immetti la formula:

           ="C:\AB\EmailPDF" & TEXT(L31;"YYYYMMMM")&M31&O31&".Pdf"

    Trascina la formula in basso Quanto Necessario.

    In alternativa, se preferesci, io potrei facilmente creare la stringa nella macro per ogni fattura.

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2015-07-09T16:21:52+00:00

    Ciao David,

    ho usato la seconda versione e funziona alla grande,

    adesso sto finalizzando la macro facendogli assegnare in modo automatico l'email, titolo, descrizione e path con il nome del file, perché la mia lista comprende un centinaio di fatture che tutti i mesi sono da spedire e se lo faccio manualmente è un lavoro infinito.

     Ho già programmato l'assegnazione  dell'email, titolo e descrizione, sto cercando di capire come scomporre il nome del file in pdf che devo assegnare ad ogni cliente.

    il nome dei file sono composti da ANNO MESE NrFattura CodCli ( 2015 giugno 453 ALFA.pdf) 

    di conseguenza nelle celle della colonna AH dovrò scrivere  c:\AB\EmailPDF\2015 giugno 453 ALFA.pdf via via per ogni cliente la sua fattura.

    ancora grazie

    Roberto

    La risposta è stata utile?

    0 commenti Nessun commento