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
    2016-09-03T14:55:59+00:00

    Salve. Vorrei sapere se è possibile salvare in PDF un foglio non attivo. In pratica vorrei inserire un pulsante in un foglio attivo che però mi vada a salvare in PDF un foglio non attivo.

    Grazie

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2016-01-04T23:23:48+00:00

    Ciao Domenico,

    Ciao Norman, ti scrivo per chiedere di nuovo il tuo aiuto.

    Volevo aggiungere al codice che hai fatto sopra, lo possibilità di stampare.

    Però deve stampare cartaceo (no PDF) soltanto 2 foglio dei tre presenti (Foglio1, Foglio 2, Foglio3) nella cartella di lavoro.

    Prova qualcosa del genere:    

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

    Option Explicit

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

    Public Sub StampareFogli()

        Dim WB As Workbook

        Dim SH As Worksheet

        Dim sPath As String, sStr As String, sFileName As String

        Dim sCliente As String, sData As String

        Dim sNumeroFattura As String

        Dim arrFogli As Variant

        Const cPrefix As String = "FT("

        Const cTesto As String = ") del "

        Const cPath As String = "**C:\Utenti\Domenico\Documenti**" '<<=== Modifica

        Const cCellaNomeCliente As String = "A1"                                     '<<=== Modifica

        Const cCellaData As String = "E1"                                                    '<<=== Modifica

        Const cCellaNumeroFattura As String = "E2"                                   '<<=== Modifica

        Const sFogliDaStampare As String = "Foglio1,Foglio3" '<<=== Modifica

        Set WB = ThisWorkbook

        Set SH = ActiveSheet

        With SH

            sCliente = .Range(cCellaNomeCliente).Value

            sData = Format(.Range(cCellaData).Value, "dd-mm-yyyy")

            sNumeroFattura = .Range(cCellaNumeroFattura).Value

            On Error GoTo ErrHandler

            With Application

                sStr = .PathSeparator

                If Right(cPath, 1) = sStr Then

                    sPath = cPath

                Else

                    sPath = cPath & sStr

                End If

            End With

        End With

        sFileName = cPrefix & sNumeroFattura & cTesto _

                  & sData & " (" & sCliente & ")"

        On Error GoTo ErrHandler

        arrFogli = Split(sFogliDaStampare, ",")

        WB.Sheets(arrFogli).PrintOut

        Exit Sub

    ErrHandler:

        Call MsgBox(Prompt:="Errore " _

                          & Err.Number _

                          & " (" _

                          & Err.Description _

                          & ") nella routine: SalvaInPDF_1", _

                    Buttons:=vbCritical, _

                    Title:="ERRORE")

    End Sub

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

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2016-01-04T22:46:42+00:00

    Ciao Norman, ti scrivo per chiedere di nuovo il tuo aiuto.

    Volevo aggiungere al codice che hai fatto sopra, lo possibilità di stampare.

    Però deve stampare cartaceo (no PDF) soltanto 2 foglio dei tre presenti (Foglio1, Foglio 2, Foglio3) nella cartella di lavoro.

    Potresti aiutarmi?

    Grazie in anticipo

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2016-01-03T23:28:00+00:00

    Ciao Domenico,

    Grazie Norman, funziona alla grande!!!!!

    Ti ringrazio per il cortese riscontro.

    Alla prossima.

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento