Risultati da 1 a 18 di 18

Discussione: MAcro per invio foglio specifico



  1. #1
    L'avatar di Barchetta
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    51013
    Età
    45
    Messaggi
    80
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    8

    MAcro per invio foglio specifico

    Ciao, ho cecato nel forum ma non ho trovato niente di vecchie discussioni.
    Avrei bisogno di una macro che vada a prendere un foglio specifico di un file Excel esportarlo ed inviarlo per mail a dei destinatari fissi.
    I dati del foglio vengono aggiornati da un altra macro che funziona regolarmente e a questo punto ne vorrei creare una secondo in modo da separarle.
    Il file in allegato rappresenta il foglio che io vorrei inviare.

    PS: come scritto se già esiste una discussione vi chiedo la cortesia di linkarmi in modo da prendere spunto.
    Grazie
    File Allegati File Allegati

  2. #2

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6749
    Versione Office
    2013
    Likes ricevuti
    711
    Likes dati
    162

    Re: MAcro per invio foglio specifico

    Citazione Originariamente Scritto da Barchetta Visualizza Messaggio
    .
    Il file in allegato rappresenta il foglio che io vorrei inviare.

    Ciao Barchetta ma il foglio lo vuoi inviare sempre come file di Excel oppure in PDF?

    Alfredo

  3. #3

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6749
    Versione Office
    2013
    Likes ricevuti
    711
    Likes dati
    162

    Re: MAcro per invio foglio specifico

    Ad esempio la macro

    Codice: 
    Sub InviaMail()
    Dim OutlookApp As Outlook.Application
        Dim MItem As Object
        Dim Recipient As String, Subj As String
        Dim Msg As String, Fname As String
        Dim dataordine As String
        Recipient = "pippo@gmail.com"
        Subj = "Oggetto"
        Msg = "In allegato rimettiamo PDF...."
        Msg = Msg & vbNewLine & vbNewLine & "Nome cliente"
        Fname = Application.DefaultFilePath & "\" & _
          ActiveSheet.Name & ".pdf"
        ActiveSheet.ExportAsFixedFormat _
            Type:=xlTypePDF, _
            Filename:=Fname
        Set OutlookApp = New Outlook.Application
        Set MItem = OutlookApp.CreateItem(olMailItem)
        With MItem
          .To = Recipient
          .Subject = Subj
          .Body = Msg
          .Attachments.Add Fname
          .Display
          '.Send
        End With
        Set OutlookApp = Nothing
    End Sub
    Invia la mail con il PDF allegato del foglio attivo.

    Ovviamente va adattata alle tue esigenze.

    Alfredo

    In questo modo si visualizza l'anteprima di Outlook senza inviare.

  4. #4
    L'avatar di Barchetta
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    51013
    Età
    45
    Messaggi
    80
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    8

    Re: MAcro per invio foglio specifico

    possibile inviare il file sempre in Excel? TROVATO scusate.
    Mi da subito errore debug su:
    Sub InviaMail()
    Dim OutlookApp As Outlook.Application

    ho outlook 2013 installato su pc.

  5. #5

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6749
    Versione Office
    2013
    Likes ricevuti
    711
    Likes dati
    162

    Re: MAcro per invio foglio specifico

    Ciao Barchetta

    Prova con questa macro (va attivata la libreria di Microsoft Outlook)

    Codice: 
    Sub Inviamail()
    Dim OutlookApp As Outlook.Application
        Dim MItem As Object
        Dim Recipient As String, Subj As String
        Dim Msg As String, Fname As String
        Dim nomefile As String
        nomefile = InputBox("Immettere il nome del file")
        Sheets("InventoryReport").Select
        Sheets("InventoryReport").Copy
        ActiveWorkbook.SaveAs Filename:="C:\Excel\" & nomefile & ".xlsm", FileFormat:= _
            xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
        Recipient = "pippo@gmail.com"
        Subj = "Oggetto"
        Msg = "In allegato rimettiamo "
        Msg = Msg & vbNewLine & vbNewLine & "Nome cliente"
        Fname = "C:\Excel\" & nomefile & ".xlsm"
        Set OutlookApp = New Outlook.Application
        Set MItem = OutlookApp.CreateItem(olMailItem)
        With MItem
          .To = Recipient
          .Subject = Subj
          .Body = Msg
          .Attachments.Add Fname
          .Display
          '.Send
        End With
        Set OutlookApp = Nothing
        Workbooks(nomefile).Close
    End Sub
    Ti allego il file.

    Alfredo
    File Allegati File Allegati

  6. #6
    L'avatar di Barchetta
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    51013
    Età
    45
    Messaggi
    80
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    8

    Re: MAcro per invio foglio specifico

    Se prendo il tuo esempio funziona, se invece prendo la macro e la metto nel mio file (dove ci sono più fogli) modificando il percorso dove va a creare il file che poi viene allegato alla mail mi da subito errore:
    Errore di compilazione evidenziando l'istruzione Dim OutlookApp As Outlook.Application

    Sicuramente sto affogando in un bicchiere d'acqua....:235:

  7. #7

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6749
    Versione Office
    2013
    Likes ricevuti
    711
    Likes dati
    162

    Re: MAcro per invio foglio specifico

    Ciao Barchetta

    Se il mio file di funziona deve funzionare anche il tuo ma senza vedere il tuo file difficile dire di più; se puoi allegarlo (senza dati sensibili) sarebbe cosa buona e giusta :176:

    E poi qual è il messaggio di errore che ti dà? Non l'hai specificato (quasi sempre non dice nulla ma qualche volta un indizio lo dà).

    Alfredo

  8. #8
    L'avatar di Barchetta
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    51013
    Età
    45
    Messaggi
    80
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    8

    Re: MAcro per invio foglio specifico

    il file che uso è più di 5mb e ho dati sensibili, avevo creato un foglio facsimile.
    Ti allego immagine dell'errore.

    Grazie ancora
    File Allegati File Allegati

  9. #9

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6749
    Versione Office
    2013
    Likes ricevuti
    711
    Likes dati
    162

    Re: MAcro per invio foglio specifico

    Purtroppo non so che dire.

    Non puoi ridurre il file anche ad un solo foglio e con poche decine di righe senza dati sensibili? Allega il foglio facsimile che hai creato (se non è quello allegato in precedenza).

    Anche se non credo sia quello il problema hai attivato la libreria di Microsoft Outlook nell'editor dio VBA in Strumenti, Riferimenti?

    Alfredo

  10. #10
    L'avatar di rollis13
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Cordenons
    Messaggi
    809
    Versione Office
    2016 64bit
    Likes ricevuti
    142
    Likes dati
    52

    Re: MAcro per invio foglio specifico

    Come ti aveva suggerito alfrimpa già nel suo post #5 devi attivare la voce "Microsoft Outlook 15.0 Object Library" scorrendo la lista del menu del Editor VBA / Strumenti / Riferimento come Alfredo ti ha nuovamente suggerito nel post #9.

    Inoltre, suggerisco una modifica all'ultima ruga del suo script, ovvero:
    Codice: 
    da: 
    Workbooks(nomefile).Close
    
    a:
    Workbooks(nomefile & ".xlsm").Close

  11. #11

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6749
    Versione Office
    2013
    Likes ricevuti
    711
    Likes dati
    162

    Re: MAcro per invio foglio specifico

    Ciao Rollis e grazie del supporto.

    Mi spieghi la modifica che hai suggerito?

    Io ho provato la mia e non mi pare abbia dato problemi.

    Infine penserei di aggiungere, prima di End Sub, un'istruzione Kill per cancellare il file "temporaneo" che si invia via mail. Cosa ne pensi?

    Alfredo

  12. #12
    L'avatar di rollis13
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Cordenons
    Messaggi
    809
    Versione Office
    2016 64bit
    Likes ricevuti
    142
    Likes dati
    52

    Re: MAcro per invio foglio specifico

    Ciao alfrimpa, la modifica (per me almeno) è necessaria altrimenti il ".Close" non mi trova il file della variabile "nomefile" in quanto il nuovo file si chiama "nomefile.xlsm".
    Secondo me il fatto di eliminare il file "temporaneo" è soggettivo, a qualcuno potrebbe tornare utile mantenere una traccia, separata da quanto inviato via email, e lasciare la copia come archivio.

  13. #13
    L'avatar di Barchetta
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    51013
    Età
    45
    Messaggi
    80
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    8

    Re: MAcro per invio foglio specifico

    Buongiorno a tutti,
    scoperto perchè mi da errore. Nel file di prova di Alfrimpa avevo attivato il componente "Microsoft Outlook 15.0 Object Library" però quando andavo ad aprire il mio file con la macro il componente è disattivato.
    Adesso però il file che mi crea molto probabilmente è dettato dal mio file originale è più di 4mb. Possibile crearlo in formato xlsx o csv, così che sia più esportabile.
    Grazie comunque a tutti

  14. #14

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6749
    Versione Office
    2013
    Likes ricevuti
    711
    Likes dati
    162

    Re: MAcro per invio foglio specifico

    Ciao Barchetta

    Prova a sostituire questa istruzione

    Codice: 
    Fname = "C:\Excel\" & nomefile & ".xlsm"
    con

    Codice: 
    Fname = "C:\Excel\" & nomefile & ".xlsx"
    variando ovviamente anche il percorso.

    Per quanto riguarda il salvataggio in .csv se la cartella ha più fogli non credo sia possibile farlo.

    Alfredo

  15. #15
    L'avatar di Barchetta
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    51013
    Età
    45
    Messaggi
    80
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    8

    Re: MAcro per invio foglio specifico

    Ciao, non mi termina la macro, mi rende errore run-time '1004' - Metodo 'SaveAs' dell'oggetto'_Workbook' non riuscito.
    allego la mia versione della macro dove ho provato a creare la versione xlsx:

    Codice:
    Sub Report()
    Dim OutlookApp As Outlook.Application
    Dim MItem As Object
    Dim Recipient As String, Subj As String
    Dim Msg As String, Fname As String
    Dim nomefile As String
    nomefile = InputBox("Immettere il nome del file")
    Sheets("InventoryReport").Select
    Sheets("InventoryReport").Copy
    ActiveWorkbook.SaveAs Filename:="F:\Mag. Centro-Sud\(ROBERTO)\InventoryReport\" & nomefile & ".xlsx", FileFormat:= _
    xlOpenXMLWorkbookEnabled, CreateBackup:=False
    Recipient = "Pippo@gmail.com"
    Subj = "InventoryReport Giornaliero"
    Msg = "In allegato file."
    Msg = "Cordiali Saluti."
    Msg = Msg & vbNewLine & vbNewLine & "Nome"
    Fname = "F:\Mag. Centro-Sud\(ROBERTO)\InventoryReport\" & nomefile & ".xlsx"
    Set OutlookApp = New Outlook.Application
    Set MItem = OutlookApp.CreateItem(olMailItem)
    With MItem
    .To = Recipient
    .Subject = Subj
    .Body = Msg
    .Attachments.Add Fname
    .Display
    '.Send
    End With
    Set OutlookApp = Nothing
    Workbooks(nomefile & ".xlsx").Close
    End Sub
    Grazie

  16. #16

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6749
    Versione Office
    2013
    Likes ricevuti
    711
    Likes dati
    162

    Re: MAcro per invio foglio specifico

    Ciao Roberto

    Quasi certamente l'errore deriva dal fatto che stati cercando di salvare il file con un nome all'interno del quale ci sono caratteri non ammessi come ad esempio il punto, la barretta verticale o le parentesi.

    Prova a creare una directory così denominata:

    Codice: 
    F:\MagCentro-Sud\ROBERTO\InventoryReport\
    e riprova inserendo tale percorso nel codice.

    Alfredo

  17. #17
    L'avatar di Barchetta
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    51013
    Età
    45
    Messaggi
    80
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    8

    Re: MAcro per invio foglio specifico

    Ciao Alfredo,

    corretto erano le parentesi, stano ho altre macro nel file (create registrando perché sono passaggi ripetuti) e non mi hanno creato problemi, ma fa niente ho creato un'altra cartella.
    Però adesso ho sempre il problema della dimensione, il foglio che vado a copiare ed inviare arriva quasi a 4mb (dentro il foglio inventory report ci sono formule con cerca.vert) e il formato è xlsm. ho provato a variare l'estensione come indichi tu in un post precedente ma la macro si ferma a:

    ActiveWorkbook.SaveAs Filename:="F:\Mag. Centro-Sud\InventoryReport\" & nomefile & ".xlsx", FileFormat:= _
    xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
    secondo me devo modificare la parte "xlOpenXMLWorkbookMacroEnabled"
    Dovrei in pratica esportarlo più piccolo di dimensioni però in un formato poi successivamente modificabile o dove ci possiamo operare con un foglio elettronico.

  18. #18

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6749
    Versione Office
    2013
    Likes ricevuti
    711
    Likes dati
    162

    Re: MAcro per invio foglio specifico

    Ciao Barchetta

    Prova a sostituire

    Codice: 
    xlOpenXMLWorkbookMacroEnabled
    con

    Codice: 
    xlOpenXMLWorkbook
    Ma onestamente non credo che il problema delle dimensioni derivi da quello.

    Alfredo

Discussioni Simili

  1. [Risolto] Macro per ordinare in base a quante volte è presente un carattere specifico.
    Di Lety88 nel forum Domande su Excel VBA e MACRO
    Risposte: 8
    Ultimo Messaggio: 01/11/16, 22:00
  2. [Risolto] Azione su un foglio a seconda del pulsante (tab o invio) che premo
    Di Ciccio nel forum Domande su Excel VBA e MACRO
    Risposte: 3
    Ultimo Messaggio: 31/10/16, 18:05
  3. Macro invio email. Problema protezione
    Di marcomessi nel forum Domande su Excel VBA e MACRO
    Risposte: 1
    Ultimo Messaggio: 09/02/16, 03:30
  4. Pulsante selezione + macro invio
    Di Il Pirata nel forum Domande su Excel VBA e MACRO
    Risposte: 4
    Ultimo Messaggio: 29/11/15, 20:58
  5. Associare Stampante ad uno Specifico Foglio
    Di RiccardoDengo nel forum Domande su Excel in generale
    Risposte: 4
    Ultimo Messaggio: 05/10/15, 12:11

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
  •