VBA - Inviare pdf da Excel con Outlook

di il
13 risposte

VBA - Inviare pdf da Excel con Outlook

Ciao a tutti,
mi servirebbe il vostro aiuto

Ho creato questa macro che dovrebbe salvare la selezione del foglio Report in PDF (e questo lo fa) e successivamente inviare il file appena creato ad un indirizzo che trova nella cella AAi.

Ho un ciclo For perché in base alla i mi inserisce i dati nei grafici che successivamente salva in PDF.

Quando vado a eseguire la macro mi compare questo messaggio di errore (riga 48): "Errore di run-time 438 Proprietà o metodo non supportato dall'oggetto"

Grazie a tutti quelli che mi aiuteranno

Sub InviaPDFReportConCiclo()


Dim ws As Worksheet
Dim strIndirizzo As String
Dim myFile As Variant
Dim strFile As String
Dim nome As String
Dim i As Integer
Dim selezione As Range
Dim percorso As String
Dim OutlookApp As Object
Dim OutlookMail As Object

'On Error GoTo errHandler
     
    Set ws = Worksheets("Report")
    Set selezione = ws.Range("A1:R225")

    percorso = Worksheets("Elenco Aziende 2").Range("AF9").Value
    
For i = 3 To 5

    Worksheets("Tabelle dati").Range("C8") = Worksheets("Elenco Aziende").Range("B" & i)
    Worksheets("Tabelle dati").Select
    nome = Range("C1").Value & " " & "-" & " " & Range("C8").Value

 strFile = Replace(nome, " ", " ") _
           
 strFile = percorso & strFile

    With Worksheets("Report")
        
         selezione.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strFile

    
        Set OutlookApp = CreateObject("Outlook.Application")
        Set OutlookMail = OutlookApp.CreateItem(0)
    
      With OutlookMail
       ' .From = 'mail destinatario
        .To = Worksheets("Elenco Aziende 2").Range("AA" & i).Value
        .CC = Worksheets("Elenco Aziende 2").Range("AB" & i).Value
        .BCC = ""
        .Subject = 'Oggetto della mail
        .Body = Worksheets("Elenco Aziende 2").Range("AF3").Value
        .Attachments.Add selezione
        .Send
    
      End With
      
    End With
    
Next i

Set ws = Nothing
Set OutlookApp = Nothing
Set OutlookMail = Nothing

exitHandler:
            Exit Sub
errHandler:
            MsgBox "Non ho potuto salvare il file PDF"
            
    Resume exitHandler
    
End Sub

13 Risposte

  • Re: VBA - Inviare pdf da Excel con Outlook

    In quale riga dello script?
  • Re: VBA - Inviare pdf da Excel con Outlook

    oregon ha scritto:


    In quale riga dello script?
    Hai ragione scusa, nella riga 48 dove dovrei allegare il file pdf (.Attachments.Add selezione)
  • Re: VBA - Inviare pdf da Excel con Outlook

    Galli93 ha scritto:


    oregon ha scritto:


    In quale riga dello script?
    Hai ragione scusa, nella riga 48 dove dovrei allegare il file pdf (.Attachments.Add selezione)
    Hai verificato in DEBUG se la variabile selezione contiene il nome del file da allegare?
  • Re: VBA - Inviare pdf da Excel con Outlook

    gibra ha scritto:


    Galli93 ha scritto:


    oregon ha scritto:


    In quale riga dello script?
    Hai ragione scusa, nella riga 48 dove dovrei allegare il file pdf (.Attachments.Add selezione)
    Hai verificato in DEBUG se la variabile selezione contiene il nome del file da allegare?
    No perché la variabile selezione è il range che deve salvare in PDF.
    Capisco che l'errore sia proprio in questo, devo (non so come) far capire ad Excel che deve allegare come file il file che crea dalla selezione del range A1:R225!

  • Re: VBA - Inviare pdf da Excel con Outlook

    Ma quindi è strFile che devi indicare
  • Re: VBA - Inviare pdf da Excel con Outlook

    oregon ha scritto:


    Ma quindi è strFile che devi indicare
    Ci ho appena provato, esce fuori un altro messaggio (che ho anche allegato come immagine): Errore di run-time '-2147024894 (80070002)': Impossibile trovare il file. Verificare che il percorso e il nome del file siano corretti.


    Allegati:
    24095_38b0ba825fce774d393153bb5650924c.jpg
    24095_38b0ba825fce774d393153bb5650924c.jpg
  • Re: VBA - Inviare pdf da Excel con Outlook

    E tu hai fatto la verifica che ti indica l'errore?

    Probabilmente manca un \ da aggiungere in

    strFile = percorso & "\" & strFile

    P.S. A parte il fatto che non si capisce a cosa serva una linea come strFile = Replace(nome, " ", " ")
  • Re: VBA - Inviare pdf da Excel con Outlook

    Ho messo quello che hai proposto alla riga 48 e con le modifiche alla riga di strFile:
    
    strFile = percorso & "\" & strFile
    
    
    .Attachments.Add strFile
    
    Ma esce comunque l'errore seguente: Errore di run-time '-2147024894 (80070002)': Impossibile trovare il file. Verificare che il percorso e il nome del file siano corretti
  • Re: VBA - Inviare pdf da Excel con Outlook

    Scusa ma non te lo dirò più ... vuoi fare la verifica di quello che c'è in strFile ?
  • Re: VBA - Inviare pdf da Excel con Outlook

    oregon ha scritto:


    Scusa ma non te lo dirò più ... vuoi fare la verifica di quello che c'è in strFile ?
    Cosa significa fare la verifica??
  • Re: VBA - Inviare pdf da Excel con Outlook

    Vedere cosa contiene quella variabile !

    Un minimo di conoscenze di programmazione le devi avere, altrimenti è impossibile sfruttare i suggerimenti in questo forum.
  • Re: VBA - Inviare pdf da Excel con Outlook

    Anche senza saperlo ci sono riuscito
    Con svariati tentativi, dovevo mettere alla riga 31 dove dichiaro la variabile strFile la "\" (come mi hai suggerito) e nella riga 46 come allegato è strFile con l'aggiunta dell'estensione:
    
    strFile = percorso & "\" & strFile
    
    .Attachments.Add strFile & (".pdf")
    
    Grazie, ciaoooo
  • Re: VBA - Inviare pdf da Excel con Outlook

    L'estensione bastava aggiungerla nella linea precedente
Devi accedere o registrarti per scrivere nel forum
13 risposte