Risultati da 1 a 7 di 7

Discussione: Macro invio Unica mail formato PDF di "n" fogli



  1. #1
    L'avatar di freepredator
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Milano
    Età
    32
    Messaggi
    50
    Versione Office
    2010
    Likes ricevuti
    1

    Post Macro invio Unica mail formato PDF di "n" fogli

    Buongiorno a tutti,

    nuovamente bisognoso di aiuto, avrei la necessita di inviare via mail, tramite macro VBA un PDF di n fogli di un WorkBook.

    In altre parole, avendo 4 fogli, vorrei che venisse creata UNA mail, contenente 3 allegati (corrispondenti ai fogli 2,3,4 del Workbook) in formato PDF, considerando che nel foglio 2 ho delle celle riempite, e nel 3 e 4 ho dei grafici.

    Io ho provato con:


    Dim wb As Workbook Dim i As Integer
    Dim Names()
    Names = Array("mail@mail.com")

    Set wb = ActiveWorkbook
    On Error Resume Next


    For i = 2 To Sheets.Count


    Nome_File = "Report" & (i)
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    " Path " & Nome_File & ".pdf", Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True


    wb.SendMail _
    Recipients:=Names(), _
    Subject:="Report" & Format(Date, "dd/mm/yyyy")
    Application.Wait (Now + TimeValue("0:00:02"))
    SendKeys "%{S}", True
    If Err.Number = 0 Then Exit For
    Next i

    On Error GoTo 0
    ed effettivamente il documento PDF viene creato (uno soltanto :187:), e la mail arriva correttamente a destinazione (salvo sistemare il discorso SENDKEYS) ma mi invia tutto l'XLSX e non il, anzi i vari PDF......

    Potete gentilmente aiutarmi?

    Grazie anticipatamente

    Riccardo

  2. #2
    L'avatar di zio_tom
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Veneto
    Messaggi
    526
    Versione Office
    2010 - Win10
    Likes ricevuti
    64
    Likes dati
    17
    qualcosa che può esserti utile c'è in questa discussione (si creano file PDf e si inviano con OutLook)
    http://www.forumexcel.it/forum/7-dom...-una-all-altra
    basta adattare il tutto alle tue esigenze

  3. I seguenti utenti hanno dato un "Like"


  4. #3
    L'avatar di freepredator
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Milano
    Età
    32
    Messaggi
    50
    Versione Office
    2010
    Likes ricevuti
    1
    Citazione Originariamente Scritto da zio_tom Visualizza Messaggio
    qualcosa che può esserti utile c'è in questa discussione (si creano file PDf e si inviano con OutLook)
    http://www.forumexcel.it/forum/7-dom...-una-all-altra
    basta adattare il tutto alle tue esigenze
    ciao zio_tom,

    ho provato a riadattare il codice alle mie esigenze, inserendo tutto in un'unico evento pulsante_click.. Mi vengono creati i 3 file ( ma non riesco a fargli cambiare nome in base allo sheet selezionato ), oltre al fatto che sarebbe opportuno che non mi venga richiesta la conferma di salvataggio del file, ma vorrei che venissero automaticamente salvati, ma poi mi si blocca sulla seguente:

    strFile = Replace(Replace(ws.Name, " ", ""), ".", "_") & "-" & Format(Now(), "dd-mm-yyyy\_hh-mm") & ".pdf"
    dandomi errore ws.Name = <Variabile oggetto o variabile del blocco With non impostata>

    Suggerimenti?

    Grazie anticipatamente

    Riccardo

  5. #4
    L'avatar di freepredator
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Milano
    Età
    32
    Messaggi
    50
    Versione Office
    2010
    Likes ricevuti
    1
    Ciao a tutti,

    dopo svariate ricerche ed infiniti tentativi, ho finalmente ottenuto quanto necessitavo.

    Riporto il codice ottenuto affinché altri che necessitano la stessa procedura, con le dovute modifiche, possano usufruirne.

    Function inviamail()


    Dim Nome_File As String


    Dim AttachmentArray(1 To 3) As String

    AttachmentArray(1) = "PATH ASSOLUTO del futuro documento PDF1 che verrà creato"
    AttachmentArray(2) = "PATH ASSOLUTO del futuro documento PDF2 che verrà creato"
    AttachmentArray(3) = "PATH ASSOLUTO del futuro documento PDF3 che verrà creato"

    Dim OutApp As Object
    Dim OutMail As Object

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    'CICLO, BASATO SU NUMERO FOGLI PRESENTI, PER DEFINIRE QUANTI ALLEGATI DIVERSI SALVARE
    For i = 2 To Sheets.Count
    Nome_File = "Report" & (i) 'SALVO IL FILE come REPORT(1), REPORT(2), REPORT(3)

    ' HO AGGIUNTO QUESTA RIGA ALTRIMENTI TI SALVA SEMPRE IL PRIMO FOGLIO
    Sheets(i).Select
    ' ----------------------------------------------------------
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    Nome_File, Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    Next i

    With OutMail

    .To = "DESTINATARIO1; DESTINATARIO2; ECC ECC" 'inserire la mail dei destinatari
    '.CC = "COPIA CONOSCENZA; ..." 'inserire la mail del destinatario in CC
    '.BCC = " COPIA CONOSCENZA NASCOSTA1; ... " 'inserire la mail del destinatario in BCC
    .Subject = "SOGGETTO DELLA MAIL"
    .Body = "Buongiorno," & Chr(13) & Chr(13) & "In allegato, INSERIRE TESTO DESIDERATO." & Chr(13) & Chr(13) & " INSERIRE I SALUTI " & Chr(13) & Chr(13) & " INSERIRE EVENTUALE FIRMA " & Chr(13)


    For x = 1 To 3 'contatore che definisce QUANTI allegati inserire
    .Attachments.Add AttachmentArray(x)
    Next x

    '.Send 'togliere apice per inviare automaticamente la mail
    .Display 'effettua una visualizzazione della mail, prima di inviarla.


    End With

    Set OutMail = Nothing
    Set OutApp = Nothing
    End Function
    Ora, devo limare alcuni dettagli, ad esempio vorrei che il nome non sia un incrementale del nome Report, ma che venga automaticamente preso dal nome dello sheets del foglio (anzi, se potete darmi un ultimo aiutino, ve ne sarei gratissimo!!! :242:) e modificare alcuni parametri dei grafici (ma a quello ci posso arrivare)

    Sperando che tale codice possa essere utile anche ad altri utenti, non posso che ringraziare infinitamente Baloon_50 per la sua immensa disponibilità e competenza, e zio_tom per le dritte da seguire.

    Riccardo

  6. #5
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3338
    Versione Office
    2013 PC
    Likes ricevuti
    481
    Likes dati
    49
    Citazione Originariamente Scritto da freepredator Visualizza Messaggio
    Ciao a tutti,

    dopo svariate ricerche ed infiniti tentativi, ho finalmente ottenuto quanto necessitavo.

    Riporto il codice ottenuto affinché altri che necessitano la stessa procedura, con le dovute modifiche, possano usufruirne.



    Ora, devo limare alcuni dettagli, ad esempio vorrei che il nome non sia un incrementale del nome Report, ma che venga automaticamente preso dal nome dello sheets del foglio (anzi, se potete darmi un ultimo aiutino, ve ne sarei gratissimo!!! :242:) e modificare alcuni parametri dei grafici (ma a quello ci posso arrivare)

    Sperando che tale codice possa essere utile anche ad altri utenti, non posso che ringraziare infinitamente Baloon_50 per la sua immensa disponibilità e competenza, e zio_tom per le dritte da seguire.

    Riccardo
    Ciao Ricky se vuoi salvare col nome del foglio, e se io non faccio cavolate credo che tu debba cambiare queste righe (quelle rosse sono le modifiche) :


    'CICLO, BASATO SU NUMERO FOGLI PRESENTI, PER DEFINIRE QUANTI ALLEGATI DIVERSI SALVARE
    For i = 2 To Sheets.Count

    Sheets(i).Select ' spostata da sotto
    Nome_File = "Report" & "_" & activesheet.name 'SALVO IL FILE come REPORT_NOMEFOGLIO
    ' HO AGGIUNTO QUESTA RIGA ALTRIMENTI TI SALVA SEMPRE IL PRIMO FOGLIO ' E' STATA SPOSTATA SOPRA
    Sheets(i).Select


    Fammi sapere - Ciao.

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  7. #6
    L'avatar di freepredator
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Milano
    Età
    32
    Messaggi
    50
    Versione Office
    2010
    Likes ricevuti
    1
    FAN-TA-STI-CO!!!! :97::97::97:

    (ti scrivo in pvt per una roba di sintassi che è tutto il pomeriggio che mi ci scorno:292::292::292:)

    Direi che posso mettere RISOLTO???

    Grazie ancora!! :43:

  8. #7
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3338
    Versione Office
    2013 PC
    Likes ricevuti
    481
    Likes dati
    49
    Citazione Originariamente Scritto da freepredator Visualizza Messaggio
    FAN-TA-STI-CO!!!! :97::97::97:

    (ti scrivo in pvt per una roba di sintassi che è tutto il pomeriggio che mi ci scorno:292::292::292:)

    Direi che posso mettere RISOLTO???

    Grazie ancora!! :43:
    Sì metti pure risolto.

    ciao.

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

Discussioni Simili

  1. [Risolto] Come leggere la seguente formula =SE.ERRORE(INDIRETTO("'"&A1&"'!K1";1);""))
    Di sitolofi nel forum Domande su Excel in generale
    Risposte: 5
    Ultimo Messaggio: 20/12/16, 14:54
  2. Risposte: 5
    Ultimo Messaggio: 01/12/16, 12:36
  3. Risposte: 9
    Ultimo Messaggio: 20/11/16, 16:54
  4. Spostarsi da un foglio ad un altro premendo "INVIO"
    Di L'invisibile nel forum Domande su Excel VBA e MACRO
    Risposte: 3
    Ultimo Messaggio: 08/01/16, 17:46
  5. Collegamento "foglio elenco" e "fogli singoli"
    Di Maurizio76 nel forum Domande su Excel in generale
    Risposte: 7
    Ultimo Messaggio: 23/11/15, 10:14

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •