Risultati da 1 a 13 di 13

Discussione: Stampare su PDF in un unico file



  1. #1
    L'avatar di giancarlo64
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    Lugano
    Messaggi
    3
    Versione Office
    2010
    Likes ricevuti
    0
    Likes dati
    0

    Stampare su PDF in un unico file

    Ciao a tutti,
    mi sto appena cimentando con le macro e sto generando dei bollettini di consegna da stampare in automatico con un numero sequenziale. Il codice che ho utilizzato è il seguente:

    Codice: 
    Sub sequenziale()
       Application.ScreenUpdating = False
       num = -1
       Valo = Range("m14").Value
       If IsNumeric(Valo) Then
          Do While num < 0
          num = InputBox("NUMERO", "COPIE DA FARE DEL FILE")
          If num = "" Then
            Exit Sub
          End If
          Loop
            For i = 1 To num
            ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
            Range("m14").Value = Range("m14").Value + 1
          Next
       Else
          MsgBox ("LA CELLA NON CONTIENE UN NUMERO")
       End If
       ActiveWorkbook.Save
    End Sub
    Il tutto funziona bene solo che adesso vorrei che le pagine generate non vengano stampate automaticamente ma vengano salvate in un solo file PDF.
    Cambiando la stampante su PDF ad ogni pagine generata mi chiede il nome del file. Vorrei poter immettere una sola volta il nome del file e poi tutte le pagine vengono salvate nel medesimo file.

    Grazie in anticipo per il vostro aiuto
    Ultima modifica fatta da:Rubik72; 18/07/16 alle 15:54

  2. #2
    L'avatar di patel
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Livorno
    Età
    72
    Messaggi
    1100
    Versione Office
    2010
    Likes ricevuti
    141
    Likes dati
    1

    Re: Stampare su PDF in un unico file

    dimentichiamo per un momento il codice che hai proposto, qual'è il tuo obiettivo ? salvare tutti i fogli in un unico pdf ?
    in questo caso puoi usare questa
    Codice: 
    Sub exportToPdfAllSheetsTo1pdf() ' tutti i fogli in un unico documento
    'Sheets(Array("Foglio1", "Foglio2")).Select
    Sheets.Select
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
        "C:\percorso\stampa.pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        True
    Sheets(1).Select
    End Sub

  3. #3
    L'avatar di giancarlo64
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    Lugano
    Messaggi
    3
    Versione Office
    2010
    Likes ricevuti
    0
    Likes dati
    0

    Re: Stampare su PDF in un unico file

    Ciao patel,
    grazie per la risposta.
    Attualmente con la mia macro non vengono creati dei nuovi fogli excel ma stampo automaticamente un foglio excel "statico" dove però un campo viene incrementato automaticamente ad ogni stampa. Sarebbe possibile integrare il tuo codice nel ciclo FOR che stampa automaticamente le pagine ma che dovrebbe invece salvarle su un file?

  4. #4
    L'avatar di ggratis
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Lecce - Pisa
    Età
    45
    Messaggi
    737
    Versione Office
    Excel 2010
    Likes ricevuti
    257
    Likes dati
    215

    Re: Stampare su PDF in un unico file

    Citazione Originariamente Scritto da giancarlo64 Visualizza Messaggio
    Ciao patel,
    grazie per la risposta.
    Attualmente con la mia macro non vengono creati dei nuovi fogli excel ma stampo automaticamente un foglio excel "statico" dove però un campo viene incrementato automaticamente ad ogni stampa. Sarebbe possibile integrare il tuo codice nel ciclo FOR che stampa automaticamente le pagine ma che dovrebbe invece salvarle su un file?
    saluti...

    Codice: 
    Sub sequenziale()
    Application.ScreenUpdating = False
    num = -1
    Valo = Range("m14").Value
    If IsNumeric(Valo) Then
    Do While num < 0
    num = InputBox("NUMERO", "COPIE DA FARE DEL FILE")
    If num = "" Then
    Exit Sub
    End If
    Loop
    For i = 1 To num
    'ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
        "C:\percorso\stampa" & i & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        True
    Range("m14").Value = Range("m14").Value + 1
    Next
    Else
    MsgBox ("LA CELLA NON CONTIENE UN NUMERO")
    End If
    ActiveWorkbook.Save
    End Sub
    non ho avuto modo di testarla, ma dovrebbe funzionare ...e per ogni passo del ciclo for dovrebbe stampare un file diverso.

    Se invece ti serve salvare tutti i fogli ciclati (il foglio che si aggiorna ad ogni passo), allora è un po' più complicato...
    un modo, potrebbe essere quello di duplicare il foglio ad ogni passo del ciclo for, quindi selezionare tutti i fogli creati dal ciclo, salvare in pdf la selezione, quindi eliminare la selezione dei fogli salvati in pdf.

    saluti
    gg

  5. #5
    L'avatar di patel
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Livorno
    Età
    72
    Messaggi
    1100
    Versione Office
    2010
    Likes ricevuti
    141
    Likes dati
    1

    Re: Stampare su PDF in un unico file

    Codice: 
    Option Base 1
    Sub sequenziale()
    Dim arr() As String
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Valo = Range("m14").Value
    num = -1
    fogli = ""
    If IsNumeric(Valo) Then
      Do While num < 0
        num = InputBox("NUMERO", "COPIE DA FARE DEL FILE")
        If num = "" Then Exit Sub
      Loop
      ReDim arr(num)
      For i = 1 To num
        Sheets(1).Range("m14").Value = Sheets(1).Range("m14").Value + 1
        Sheets(1).Copy After:=Sheets(Sheets.Count)
        arr(i) = Sheets(Sheets.Count).Name
      Next
    Else
      MsgBox ("LA CELLA NON CONTIENE UN NUMERO")
    End If
    Sheets(arr()).Select
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
        "C:\percorso\copia.pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        True
    For j = Sheets.Count To 2 Step -1
      Sheets(j).Delete
    Next
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
    End Sub

  6. #6
    L'avatar di ggratis
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Lecce - Pisa
    Età
    45
    Messaggi
    737
    Versione Office
    Excel 2010
    Likes ricevuti
    257
    Likes dati
    215

    Re: Stampare su PDF in un unico file

    Un piccola precisazione al codice di @patel (che saluto) la sua macro parte dal presupposto che nella cartella ci sia inizialmente soltanto il solo foglio 1 ed alla fine vengono cancellati tutti i fogli tranne il primo. Nel caso inizialmente ci fossero più fogli, prima del ciclo for di "stampa" se ne dovrà memorizzare il numero in una variabile per poi tenerne conto nel ciclo finale di cancellazione.
    Saluti
    GG

    Inviato dal mio GT-I9105P utilizzando Tapatalk

  7. #7
    L'avatar di patel
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Livorno
    Età
    72
    Messaggi
    1100
    Versione Office
    2010
    Likes ricevuti
    141
    Likes dati
    1

    Re: Stampare su PDF in un unico file

    giusta osservazione, infatti sarebbe sempre meglio allegare un file di esempio per poter avere l'esatto quadro della situazione.
    Comunque si può risolvere così
    Codice: 
    Option Base 1
    Sub sequenziale()
    Dim arr() As String
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Valo = Range("m14").Value
    num = -1
    fogli = ""
    nfogli = Sheets.Count
    If IsNumeric(Valo) Then
      Do While num < 0
        num = InputBox("NUMERO", "COPIE DA FARE DEL FILE")
        If num = "" Then Exit Sub
      Loop
      ReDim arr(num)
      For i = 1 To num
        Sheets(1).Range("m14").Value = Sheets(1).Range("m14").Value + 1
        Sheets(1).Copy After:=Sheets(Sheets.Count)
        arr(i) = Sheets(Sheets.Count).Name
      Next
    Else
      MsgBox ("LA CELLA NON CONTIENE UN NUMERO")
    End If
    Sheets(arr()).Select
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
        "C:\percorso\copia.pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        True
    For j = Sheets.Count To nfogli + 1 Step -1
      Sheets(j).Delete
    Next
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
    End Sub

  8. #8

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

    Re: Stampare su PDF in un unico file

    Citazione Originariamente Scritto da giancarlo64 Visualizza Messaggio
    Ciao a tutti,
    mi sto appena cimentando con le macro e sto generando dei bollettini di consegna da stampare in automatico con un numero sequenziale. Il codice che ho utilizzato è il seguente:

    Codice: 
    Sub sequenziale()
       Application.ScreenUpdating = False
       num = -1
       Valo = Range("m14").Value
       If IsNumeric(Valo) Then
          Do While num < 0
          num = InputBox("NUMERO", "COPIE DA FARE DEL FILE")
          If num = "" Then
            Exit Sub
          End If
          Loop
            For i = 1 To num
            ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
            Range("m14").Value = Range("m14").Value + 1
          Next
       Else
          MsgBox ("LA CELLA NON CONTIENE UN NUMERO")
       End If
       ActiveWorkbook.Save
    End Sub
    Il tutto funziona bene solo che adesso vorrei che le pagine generate non vengano stampate automaticamente ma vengano salvate in un solo file PDF.
    Cambiando la stampante su PDF ad ogni pagine generata mi chiede il nome del file. Vorrei poter immettere una sola volta il nome del file e poi tutte le pagine vengono salvate nel medesimo file.

    Grazie in anticipo per il vostro aiuto
    Ciao a tutti.
    Ciao @giancarlo64, per una miglior leggibilità, ti consiglio di racchiudere il codice nei relativi [TAG]. In questa discussione l'ho modificato io.

  9. #9
    L'avatar di giancarlo64
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    Lugano
    Messaggi
    3
    Versione Office
    2010
    Likes ricevuti
    0
    Likes dati
    0

    Re: Stampare su PDF in un unico file

    Grazie 1000 a tutti per l'aiuto, ho risolto stampando vari files e poi unendoli con Adobe PDF.

    Ho notato però che il documento pdf generato con la macro risulta scalato in dimensione per rapporto all'originale se lo stampo. L'oridinale stampato direttamente da excel invece è perfetto . Questo mi crea problemi poi perché l'indirizzo non si trova più al posto giusto.
    Esiste un modo per ridimensionare (ingrandire) al 100% il file generato?

    Grazei

  10. #10
    L'avatar di ggratis
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Lecce - Pisa
    Età
    45
    Messaggi
    737
    Versione Office
    Excel 2010
    Likes ricevuti
    257
    Likes dati
    215

    Re: Stampare su PDF in un unico file

    Citazione Originariamente Scritto da giancarlo64 Visualizza Messaggio
    Grazie 1000 a tutti per l'aiuto, ho risolto stampando vari files e poi unendoli con Adobe PDF.

    Ho notato però che il documento pdf generato con la macro risulta scalato in dimensione per rapporto all'originale se lo stampo. L'oridinale stampato direttamente da excel invece è perfetto . Questo mi crea problemi poi perché l'indirizzo non si trova più al posto giusto.
    Esiste un modo per ridimensionare (ingrandire) al 100% il file generato?

    Grazei
    ciao giancarlo64,
    dovresti poter risolvere aggiungendo un'istruzione del tipo

    Codice: 
        With ActiveSheet.PageSetup
            .CenterHorizontally = True
            .CenterVertically = True
            .Orientation = xlLandscape
            .Zoom = 100
        End With
    ...potresti allegare un file su cui fare qualche prova?
    saluti
    gg

  11. #11
    L'avatar di Raffaele_53
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Binasco
    Età
    64
    Messaggi
    506
    Versione Office
    2007
    Likes ricevuti
    85
    Likes dati
    7

    Re: Stampare su PDF in un unico file

    >>>ho risolto stampando vari files e poi unendoli con Adobe PDF
    Non saprei, per il fatto che da EXCEL2007 fà già il tutto senza software vari.

    Del fatto che Array("Foglio1", "Foglio2") ecc ecc, mi suonava strambo se fossero 500/1000 fogli (però righe, entro quasi 1.050.000 righe)
    ...posso anche stampare se superano le righe...
    Perchè non creare un solo foglio "Stampa".
    Ad ogni ciclo copia/incolla a seguire & stampare/salvare solo lui?

  12. #12
    L'avatar di ggratis
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Lecce - Pisa
    Età
    45
    Messaggi
    737
    Versione Office
    Excel 2010
    Likes ricevuti
    257
    Likes dati
    215

    Re: Stampare su PDF in un unico file

    Scusami Raffaele ma non ho capito cosa intendi fare!
    Proponi il codice, certo con un file d'esempio senza dati sensibili sarebbe tutto un po più semplice. ..

    Saluti
    GG

    Inviato dal mio GT-I9105P utilizzando Tapatalk

  13. #13
    L'avatar di Raffaele_53
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Binasco
    Età
    64
    Messaggi
    506
    Versione Office
    2007
    Likes ricevuti
    85
    Likes dati
    7

    Re: Stampare su PDF in un unico file

    Ciao ggratis ed un saluto a tutti.

    >>>Adobe PDF
    Come detto userei solo la funzione d'excel per tramutarlo in PDF
    L'utente non ha allegato un file, pertanto non conosco il range da salvare.
    Inoltre il codice, piano-piano l'avete aggiustato al meglio.
    Resta il fatto che con NUM si conosce quante sono le copie da fare = InputBox("NUMERO", la riga >>> num = -1 si può anche togliere (NB).

    Non sapendo quanti file stiamo per trattare con Range("m14").Value + 1, fossero 10/20 OK, mà se fossero 1000?
    Salvare in PDF, va benissimo il Vostro metodo di creare tanti fogli nuovi, io userei solo un copia/incolla ex in foglio Stampa a seguire
    L'unica condizione che se le righe in foglio "stampa" fossero oltre 1.000.000 di salvare il PDF/cancellare il foglio "stampa" e casomai continuare.

    NB. Comunque, nel CODICE >>>For i = 1 To num
    Se l'utente desidera 3 copie di stampa (questo mi stà bene). Fuori dal ciclo andrà >>>ActiveSheet.ExportAsFixedFormat oppure il copia/incolla in "Stampa", mà dovrebbe essere fatto in un'altro ciclo for (oppure diventa infinito)
    Se non vedo un'allegato non creo un codice, perlomeno che dica l'area del foglio e quanti file si deve fare. Forse ho capito male il tutto.

Discussioni Simili

  1. unire file (cartelle) excel in un unico file
    Di Nhio82 nel forum Domande su Excel in generale
    Risposte: 13
    Ultimo Messaggio: 11/11/17, 21:12
  2. [Risolto] Stampare da un file excel fogli di lavoro presenti su un altro file excel
    Di Lorex nel forum Domande su Excel VBA e MACRO
    Risposte: 10
    Ultimo Messaggio: 09/12/16, 20:21
  3. [Risolto] Trasferimento dati da più file in uno unico generale automaticamente
    Di alelicca nel forum Domande su Excel VBA e MACRO
    Risposte: 19
    Ultimo Messaggio: 21/11/16, 22:33
  4. [Risolto] Importare tanti file csv in un unico file excel
    Di gianluca26 nel forum Domande su Excel VBA e MACRO
    Risposte: 15
    Ultimo Messaggio: 12/11/16, 18:37
  5. stampare il risultato su un file testo
    Di solenero nel forum Domande su Excel VBA e MACRO
    Risposte: 1
    Ultimo Messaggio: 15/05/16, 00:55

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
  •