Salvataggio file excel come PDF tramite pulsante

Anonimo
2012-10-23T09:56:31+00:00

Salve a tutti!

Avrei gentilmente bisogno di associare un'azione ad un pulsante creato in un foglio excel in modo tale che premendo il pulsante il sistema in automatico mi prenda tutte le celle dove c'è scritto qualcosa e me li salvi in un percorso prestabilito nella mia rete ma in formato PDF.

Il tutto magari tramite VBA

In attesa Vi ringrazio in anticipo

Massimo

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
2012-10-23T11:19:12+00:00

Sub SalvaInPDF()

    Const cPath  As String = "c:"

    Dim varNomeFile As Variant

    varNomeFile = Application.InputBox(Prompt:="Scrivi il nome del file PDF", _

        Title:="Nome dal file PDF da salvare", _

        Type:=2)

    If varNomeFile = False Then Exit Sub

    If Len(varNomeFile & vbNullString) = 0 Then Exit Sub

    ActiveSheet.ExportAsFixedFormat _

        Type:=xlTypePDF, _

        Filename:=cPath & varNomeFile, _

        Quality:=xlQualityStandard, _

        OpenAfterPublish:=False

End Sub


Devi solo decidere cosa succede se non scrivi nulla nella InputBox. Nel codice ho stabilito che la procedura esca senza fare altro. Potresti eventualmente assegnare un nome di default al file.

David

La risposta è stata utile?

2 persone hanno trovato utile questa risposta.
0 commenti Nessun commento

51 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2015-02-24T10:14:01+00:00

    Ciao Gimart,

    Mi pare possibile che tu non abbia i diritti per salvare al percorso C:. Pertanto, prova la seguente versione:

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

    Option Explicit

    '--------->.

    Public Sub SalvaInPDF_1()

        Dim sPath As String

        Dim varNomeFile As Variant

        'Const cPath As String = **"c:**"

       On Error GoTo ErrHandler

        With Application

            sPath = .DefaultFilePath & .PathSeparator

        End With

        varNomeFile = Application.InputBox(Prompt:="Scrivi il nome del file PDF", _

                                           Title:="Nome dal file PDF da salvare", _

                                           Type:=2)

        If varNomeFile = False Then Exit Sub

        If Len(varNomeFile & vbNullString) = 0 Then Exit Sub

        With ActiveSheet.PageSetup

            .Orientation = xlLandscape  '\ oppure xlPortrait

            .PaperSize = xlPaperA4

            .FitToPagesWide = 1

            .FitToPagesTall = 1

        End With

        On Error GoTo ErrHandler:

        ActiveSheet.ExportAsFixedFormat _

                Type:=xlTypePDF, _

                Filename:=sPath & varNomeFile, _

                Quality:=xlQualityStandard, _

                OpenAfterPublish:=False

    ErrHandler:

        Call MsgBox(Prompt:="Errore " _

                    & Err.Number _

                    & " (" _

                    & Err.Description _

                    & ") nella routine: SalvaInPDF_1", _

                    Buttons:=vbCritical, _

                    Title:="ERRORE")

    End Sub

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

    [Edit]

    Nota che ho cancellato l'ultima istruzione:

      Resume XIT

    ===

    Regards,

    Norman

    La risposta è stata utile?

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento
  2. Anonimo
    2012-10-23T12:12:00+00:00

    è perfetto così! grazie mille!

    Massimo

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2012-10-23T10:57:04+00:00

    Grazie mille.

    E' tutto perfetto ma ho bisogno di 2 cose:

    1. se quando clicco sul pulsante mi possa uscire una finestra dove inserire il nome del file a mia scelta
    2. se può non uscire la finestra di anteprima subito dopo il salvataggio

    Rimango in attesa e ringrazio ancora molto.

    Massimo

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2012-10-23T10:34:52+00:00

    Ciao Massimo,

    questa attività può essere fatta manualmente: http://support.microsoft.com/kb/2278346/it

    oppure con una macro:

    la macro che segue (che puoi associare ad un pulsante/scorciatoia da tastiera) salva in pdf il foglio excel attivo in quel momento in un percorso di rete prestabilito (che varierai per adattarlo alle tue esigenze)

    Non hai specificato come deve essere il nome del file salvato e quindi, al momento, ho imposto che abbia come nome TEST


    Sub SalvaInPDF()

        Const cPath  As String = "C:"

        ActiveSheet.ExportAsFixedFormat _

            Type:=xlTypePDF, _

            Filename:=cPath & "TEST", _

            Quality:=xlQualityStandard, _

            OpenAfterPublish:=True

    End Sub


    David

    La risposta è stata utile?

    0 commenti Nessun commento