Risultati da 1 a 15 di 15

Discussione: Esportare file pdf chiedendo dove salvarlo



  1. #1
    L'avatar di mirko.esposito
    Clicca e Apri
    Data Registrazione
    Apr 2016
    Località
    Milano
    Messaggi
    59
    Versione Office
    2016 MAC
    Likes ricevuti
    3
    Likes dati
    2

    Smile Esportare file pdf chiedendo dove salvarlo

    Ciao Ragazzi!
    Ho bisogno di creare una Macro che esporti un determinato foglio in PDF ma vorrei rendere la macro universale nel senso che non voglio specificare da codice il percorso ma voglio che excel mi chieda dove salvarlo...

    Il codice che ho è:

    Codice: 
    Sub Pulsante6_Click()
    'Esporta file in Pdf
    '
    '
    If MsgBox("Vuoi esportare questo file in Pdf (fino al n°25)?", vbYesNo + vbQuestion) = vbNo Then
    Exit Sub
    End If
    'Nascondi colonne
    Columns("D:J").EntireColumn.Hidden = True
    'Imposta area di stampa
    ActiveSheet.PageSetup.PrintArea = "$B$3:$N$56"
    'Esporta in Desktop
    
    
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    "C:\Users\mirkoesposito\Desktop\Export.pdf", Quality:= _
    xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
    OpenAfterPublish:=True
    
    
    'Ripristina visibilità celle
    If MsgBox("Vuoi ripristinare la visibilità delle celle?", vbYesNo + vbQuestion) = vbNo Then
    Exit Sub
    End If
    
    
    Columns("D:J").EntireColumn.Hidden = False
    
    
    End Sub
    Come posso fare?

    P.S. Non sono esperto di VB sono davvero alle primissime armi.

    Vi ringrazio in anticipo per l'aiuto!!
    Ultima modifica fatta da:Gerardo Zuccalà; 30/05/16 alle 20:23 Motivo: Inserimento del codice VBA all'inetrno dei tag [CODE]

  2. #2

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

    Re: Esportare file pdf chiedendo dove salvarlo

    Ciao Mirko

    Potresti usare due inputbox in questo modo

    Codice: 
    Dim myPath as String
    Dim nomefile as String
    myPath = InputBox("Inserire il percorso")
    nomefile = InputBox("Inserire il nome del file")
    
    
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    myPath & nomefile & ".pdf", Quality:= _
    xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
    OpenAfterPublish:=True
    
    Alfredo

  3. #3
    L'avatar di mirko.esposito
    Clicca e Apri
    Data Registrazione
    Apr 2016
    Località
    Milano
    Messaggi
    59
    Versione Office
    2016 MAC
    Likes ricevuti
    3
    Likes dati
    2

    Re: Esportare file pdf chiedendo dove salvarlo

    Ciao Alfrimpa,
    grazie per la riposta.

    C'è un modo per utilizzare lo stesso percorso del file excel in automatico?

    Citazione Originariamente Scritto da alfrimpa Visualizza Messaggio
    Ciao Mirko

    Potresti usare due inputbox in questo modo

    Codice: 
    Dim myPath as String
    Dim nomefile as String
    myPath = InputBox("Inserire il percorso")
    nomefile = InputBox("Inserire il nome del file")
    
    
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    myPath & nomefile & ".pdf", Quality:= _
    xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
    OpenAfterPublish:=True
    
    Alfredo

  4. #4

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

    Re: Esportare file pdf chiedendo dove salvarlo

    Si, se ho capito bene, con l'istruzione che vedi sotto viene associato alla variabile myPath il percorso della cartella di lavoro attiva

    Codice: 
    myPath = ActiveWorkbook.Path
    Alfredo

  5. #5
    L'avatar di mirko.esposito
    Clicca e Apri
    Data Registrazione
    Apr 2016
    Località
    Milano
    Messaggi
    59
    Versione Office
    2016 MAC
    Likes ricevuti
    3
    Likes dati
    2

    Re: Esportare file pdf chiedendo dove salvarlo

    Mi restituisce "Errore Runtime 1004"
    Citazione Originariamente Scritto da alfrimpa Visualizza Messaggio
    Si, se ho capito bene, con l'istruzione che vedi sotto viene associato alla variabile myPath il percorso della cartella di lavoro attiva

    Codice: 
    myPath = ActiveWorkbook.Path
    Alfredo

  6. #6

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

    Re: Esportare file pdf chiedendo dove salvarlo

    Puoi allegare il file o la macro che hai scritto?

    Alfredo

  7. #7

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979

    Re: Esportare file pdf chiedendo dove salvarlo

    Citazione Originariamente Scritto da mirko.esposito Visualizza Messaggio
    Mi restituisce "Errore Runtime 1004"
    Probabilmente ti restituisce quell'errore in quanto il file di excel non è ancora salvato. (magari mi sbaglio).

    La già ottima soluzione di Alfredo (che saluto) soffre di un piccolo difetto, se non si scrive il percorso in maniera impeccabile il debug si lamenta.
    Suggerisco questa soluzione per il percorso:
    Codice: 
    myPath = modBrowseFolder.BrowseForFolder
    in un secondo Modulo:
    Codice: 
    Option Explicit
    
    
    '---------------------------------------------------
    ' Dichiarazioni WinAPI
    '---------------------------------------------------
    Private Declare Sub CoTaskMemFree _
        Lib "ole32.dll" ( _
            ByVal hMem As Long _
        )
    Private Declare Function SHBrowseForFolder _
        Lib "shell32" ( _
            lpbi As BrowseInfo _
        ) As Long
    Private Declare Function SHGetPathFromIDList _
        Lib "shell32" ( _
            ByVal pidList As Long, _
            ByVal lpBuffer As String _
        ) As Long
    Private Declare Function GetActiveWindow _
        Lib "user32" ( _
        ) As Long
    
    
    '-------------------------------------------------
    ' Tipi definiti dall'utente
    '-------------------------------------------------
    Private Type BrowseInfo
        hwndOwner As Long
        pIDLRoot As Long
        pszDisplayName As String
        lpszTitle As String
        ulFlags As Long
        lpfnCallback As Long
        lParam As Long
        iImage As Long
    End Type
    
    
    '-------------------------------------------------
    ' Costanti a livello di modulo
    '-------------------------------------------------
    'usate per le API SHBrowseForFolder
    Const BIF_RETURNONLYFSDIRS = 1
    Const MAX_PATH = 260
    
    
    Function BrowseForFolder() As String
        Dim iNull As Integer
        Dim lpIDList As Long
        Dim lResult As Long
        Dim sPath As String
        Dim udtBI As BrowseInfo
        
        With udtBI
            .hwndOwner = GetActiveWindow&
            .lpszTitle = "Choose a folder"
            .ulFlags = BIF_RETURNONLYFSDIRS
        End With
        
        lpIDList = SHBrowseForFolder(udtBI)
        If lpIDList Then
            sPath = String$(MAX_PATH, 0)
            lResult = _
                SHGetPathFromIDList _
                (lpIDList, sPath)
            Call CoTaskMemFree(lpIDList)
            iNull = InStr(sPath, _
                vbNullChar)
            If iNull Then _
                sPath = Left$(sPath, iNull - 1)
        End If
        BrowseForFolder = sPath
    End Function

  8. #8
    L'avatar di mirko.esposito
    Clicca e Apri
    Data Registrazione
    Apr 2016
    Località
    Milano
    Messaggi
    59
    Versione Office
    2016 MAC
    Likes ricevuti
    3
    Likes dati
    2

    Re: Esportare file pdf chiedendo dove salvarlo

    Il codice è questo... Allego anche il file



    Sub Pulsante6_Click()
    'Esporta file in Pdf
    '
    '
    If MsgBox("Vuoi esportare questo file in Pdf (fino al n°25)?", vbYesNo + vbQuestion) = vbNo Then
    Exit Sub
    End If
    'Nascondi colonne
    Columns("D:J").EntireColumn.Hidden = True
    'Imposta area di stampa
    ActiveSheet.PageSetup.PrintArea = "$B$3:$N$56"
    'Esporta in Desktop
    Dim myPath As String
    Dim nomefile As String
    myPath = ActiveWorkbook.Path
    nomefile = InputBox("Inserire il nome del file")




    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    myPath & nomefile & ".pdf", Quality:= _
    xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
    OpenAfterPublish:=True




    'Ripristina visibilità celle
    If MsgBox("Vuoi ripristinare la visibilità delle celle?", vbYesNo + vbQuestion) = vbNo Then
    Exit Sub
    End If


    Columns("D:J").EntireColumn.Hidden = False


    End Sub
    File Allegati File Allegati

  9. #9

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979

    Re: Esportare file pdf chiedendo dove salvarlo

    Prova così:
    Codice: 
    Sub Pulsante6_Click()
    'Esporta file in Pdf
    '
    '
    If MsgBox("Vuoi esportare questo file in Pdf (fino al n°25)?", vbYesNo + vbQuestion) = vbNo Then
        Exit Sub
    End If
    'Nascondi colonne
    Columns("D:J").EntireColumn.Hidden = True
    'Imposta area di stampa
    ActiveSheet.PageSetup.PrintArea = "$B$3:$N$56"
    'Esporta in Desktop
    Dim myPath As String
    Dim nomefile As String
    
    
    'myPath = ActiveWorkbook.Path
    myPath = modBrowseFolder.BrowseForFolder
    nomefile = InputBox("Inserire il nome del file")
    
    
    ActiveSheet.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:=myPath & "\" & nomefile & ".pdf", _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=True
    
    
    'Ripristina visibilità celle
    If MsgBox("Vuoi ripristinare la visibilità delle celle?", vbYesNo + vbQuestion) = vbNo Then
        Exit Sub
    End If
    
    
    
    
    Columns("D:J").EntireColumn.Hidden = False
    
    
    End Sub
    P.S. Nel post #7 ho dimenticato di specificare che il secondo modulo si deve chiamare: modBrowseFolder
    File Allegati File Allegati

  10. #10
    L'avatar di mirko.esposito
    Clicca e Apri
    Data Registrazione
    Apr 2016
    Località
    Milano
    Messaggi
    59
    Versione Office
    2016 MAC
    Likes ricevuti
    3
    Likes dati
    2

    Re: Esportare file pdf chiedendo dove salvarlo

    Ciao Rubik,
    la tua soluzione mi restituisce l'errore "Runtime 424"


    Citazione Originariamente Scritto da Rubik72 Visualizza Messaggio
    Probabilmente ti restituisce quell'errore in quanto il file di excel non è ancora salvato. (magari mi sbaglio).

    La già ottima soluzione di Alfredo (che saluto) soffre di un piccolo difetto, se non si scrive il percorso in maniera impeccabile il debug si lamenta.
    Suggerisco questa soluzione per il percorso:
    Codice: 
    myPath = modBrowseFolder.BrowseForFolder
    in un secondo Modulo:
    Codice: 
    Option Explicit
    
    
    '---------------------------------------------------
    ' Dichiarazioni WinAPI
    '---------------------------------------------------
    Private Declare Sub CoTaskMemFree _
        Lib "ole32.dll" ( _
            ByVal hMem As Long _
        )
    Private Declare Function SHBrowseForFolder _
        Lib "shell32" ( _
            lpbi As BrowseInfo _
        ) As Long
    Private Declare Function SHGetPathFromIDList _
        Lib "shell32" ( _
            ByVal pidList As Long, _
            ByVal lpBuffer As String _
        ) As Long
    Private Declare Function GetActiveWindow _
        Lib "user32" ( _
        ) As Long
    
    
    '-------------------------------------------------
    ' Tipi definiti dall'utente
    '-------------------------------------------------
    Private Type BrowseInfo
        hwndOwner As Long
        pIDLRoot As Long
        pszDisplayName As String
        lpszTitle As String
        ulFlags As Long
        lpfnCallback As Long
        lParam As Long
        iImage As Long
    End Type
    
    
    '-------------------------------------------------
    ' Costanti a livello di modulo
    '-------------------------------------------------
    'usate per le API SHBrowseForFolder
    Const BIF_RETURNONLYFSDIRS = 1
    Const MAX_PATH = 260
    
    
    Function BrowseForFolder() As String
        Dim iNull As Integer
        Dim lpIDList As Long
        Dim lResult As Long
        Dim sPath As String
        Dim udtBI As BrowseInfo
        
        With udtBI
            .hwndOwner = GetActiveWindow&
            .lpszTitle = "Choose a folder"
            .ulFlags = BIF_RETURNONLYFSDIRS
        End With
        
        lpIDList = SHBrowseForFolder(udtBI)
        If lpIDList Then
            sPath = String$(MAX_PATH, 0)
            lResult = _
                SHGetPathFromIDList _
                (lpIDList, sPath)
            Call CoTaskMemFree(lpIDList)
            iNull = InStr(sPath, _
                vbNullChar)
            If iNull Then _
                sPath = Left$(sPath, iNull - 1)
        End If
        BrowseForFolder = sPath
    End Function

  11. #11

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979

    Re: Esportare file pdf chiedendo dove salvarlo

    Hai provato il file allegato?
    Esegui la macro passo-passo (F8) e individua quale riga ti da errore.

  12. #12
    L'avatar di mirko.esposito
    Clicca e Apri
    Data Registrazione
    Apr 2016
    Località
    Milano
    Messaggi
    59
    Versione Office
    2016 MAC
    Likes ricevuti
    3
    Likes dati
    2

    Re: Esportare file pdf chiedendo dove salvarlo

    Citazione Originariamente Scritto da Rubik72 Visualizza Messaggio
    Hai provato il file allegato?
    Esegui la macro passo-passo (F8) e individua quale riga ti da errore.

    Mi da un errore nella compilazione perché ho un sistema a 64bit

  13. #13

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

    Re: Esportare file pdf chiedendo dove salvarlo

    Ciao Mirko

    Occorre inserire l'istruzione "PtrSafe" in tutte le chiamate alle API di Windows.

    Es.

    Codice: 
    Private Declare PtrSafe Sub CoTaskMemFree
    oppure

    Codice: 
    Private Declare PtrSafe Function SHBrowseForFolder
    etc.

    Se fai una ricerca con Google......

    Alfredo

  14. #14
    L'avatar di mirko.esposito
    Clicca e Apri
    Data Registrazione
    Apr 2016
    Località
    Milano
    Messaggi
    59
    Versione Office
    2016 MAC
    Likes ricevuti
    3
    Likes dati
    2

    Re: Esportare file pdf chiedendo dove salvarlo

    Ciao ragazzi, ringrazio tutti per la disponibilità e le risposte. Ho scoperto per caso che lasciando uno spazio vuoto (" ") dopo Filename:= excel salva l'esportazione di default nei Documenti.
    Per me è apposto così.
    Grazie ancora!

  15. #15
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126

    Re: Esportare file pdf chiedendo dove salvarlo

    Citazione Originariamente Scritto da mirko.esposito Visualizza Messaggio
    Ciao ragazzi, ringrazio tutti per la disponibilità e le risposte. Ho scoperto per caso che lasciando uno spazio vuoto (" ") dopo Filename:= excel salva l'esportazione di default nei Documenti.
    Per me è apposto così.
    Grazie ancora!

    Ciao Mirko grazie per il riscontro
    e se la tua domanda è stata risolta segna questa discussione come [RISOLTO]
    Vai nella barra dei menu, situata all’inizio di questa discussione, troverai il menu “Strumenti Discussione” quindi scegliere “Segna questo Thread come risolto”

Discussioni Simili

  1. esportare colonne in file xlsm
    Di alex_drastic nel forum Domande su Excel VBA e MACRO
    Risposte: 14
    Ultimo Messaggio: 10/03/17, 22:43
  2. [Risolto] Importare e esportare file . DAT
    Di G.Bove nel forum Domande su Excel in generale
    Risposte: 12
    Ultimo Messaggio: 28/11/16, 21:10
  3. [Risolto] esportare record concatenati in file txt su unica riga senza ritorno a capo
    Di diego1966 nel forum Domande su Microsoft Access
    Risposte: 7
    Ultimo Messaggio: 10/09/16, 00:13
  4. Importare ed esportare file csv
    Di Berio nel forum Domande su Excel in generale
    Risposte: 5
    Ultimo Messaggio: 08/07/16, 23:07
  5. esportare singole colonne in nuovo file excel
    Di Lety88 nel forum Domande su Excel VBA e MACRO
    Risposte: 9
    Ultimo Messaggio: 11/03/16, 19:41

Tag per Questa Discussione

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
  •