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-01-03T22:41:09+00:00

    Grazie Norman, funziona alla grande!!!!!

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2016-01-03T18:18:56+00:00

    Ciao Domenico,

    Sempre restando in ambito fatture, quando salvo le fatture le salvo con il seguente nome : FT (numero fattura) del dd-mm-yyyy (nome cliente) .

    Questi dati sono presenti nel foglio excell.

    E' possibile automatizzare il salvataggio i modo che va a prendere i dati direttamente sul foglio excell.

    Prova qualcosa del genere:

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

    Option Explicit

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

    Public Sub SalvaInPDF()

        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

        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

        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

            sFileName = cPrefix & sNumeroFattura & cTesto _

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

            On Error GoTo ErrHandler:

            SH.ExportAsFixedFormat _

                    Type:=xlTypePDF, _

                    Filename:=sPath & sFileName, _

                    Quality:=xlQualityStandard, _

                    OpenAfterPublish:=False

        End With

        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-03T16:29:49+00:00

    Ciao Norman,

    Sempre restando in ambito fatture, quando salvo le fatture le salvo con il seguente nome : FT (numero fattura) del dd-mm-yyyy (nome cliente) .

    Questi dati sono presenti nel foglio excell.

    E' possibile automatizzare il salvataggio i modo che va a prendere i dati direttamente sul foglio excell.

    Grazie.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2015-03-02T07:13:18+00:00

    Ciao Gimart,

    Ho confrontato i testi della macro (quello ricavato dal file e quello citato nella tua risposta. Non sono perfettamente uguali:

    in uno c'è la riga:

    .Printgridlines = True

    nell'altro:

    .Printgridlines = False

    qual'è la riga esatta prima che ricominci a provare?

    Come spiegato in precedenza:

    Per quanto riguarda il file che avevo caricato su OneDrive, sostituisci la riga di codice:

              .PrintGridlines = False

    con:

    .PrintGridlines =True

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento