Excel e gli applicativi Microsoft Office Stampa pdf con nume recorso in una cella con BullZip

Login Registrati
Stai vedendo 15 articoli - dal 1 a 15 (di 15 totali)
  • Autore
    Articoli
  • #8763 Score: 0 | Risposta

    Riky38
    Partecipante

      Salve a tutti ho un problema che non riesco a risolvere, stampare un file pdf con BullZip, il proble è che non mi assegana il nome, che dovrebbe prendere in una cella, mente mi assega il nome del foglio originale, quando lancio la macro si apre la finesta bi Bullzip pdf , con il percorso del file e il nome, dimenticavo il percorso e prelevato da una cella ed è esatto solo il nome non viene assegnato. Allego la macro con la speranza che qualcuno mi possa aiutare.

      Volevo chiede come mai con la stampa pdf inglobbato in excel il file creato è grande più del doppio, rispetto ad un altra stampante pdf? Però se il carattere inserito nel file è Ariel il file creato e più piccolo ad altre stampanti Pdf?

      Allego codice

      #8764 Score: 0 | Risposta

      Riky38
      Partecipante

        Sub stampa_PDF_BullZip() 'STAMPA PDF SOLO SELEZIONE XXXXXXXXXXXX
        Dim S As String
        S = ActivePrinter
        Dim SavePath As String, FileName As String
        SavePath = Range("Q14")
        FileName = Range("Q13")
        'verrà proposto in automatico
        FileName = SavePath & Range("J2").Value

        Application.ScreenUpdating = False
        'Sheets("Pannello").Range("A9:N24").Select
        Sheets("Pannello").Select
        ActiveSheet.PageSetup.PrintArea = "$A$11:$K$23"
        With ActiveSheet.PageSetup
        'With Selection
        'Selection.PrintPreview
        Sheets("Pannello").PrintOut Copies:=1, ActivePrinter:=Trim(Sheets("Pannello").Range("$E$31")), Collate:=True
        'Sheets("Pannello").PrintPreview Copies:=1, ActivePrinter:=Trim(Sheets("Pannello").Range("$E$31")), Collate:=True
        ActivePrinter = S
        End With
        Application.ScreenUpdating = True
        End Sub

        #8769 Score: 0 | Risposta

        vecchio frac
        Senior Moderator
          245 pts

          Cosa c'è in Range("Q13") ? Cosa c'è in Range("Q14") ? Cosa c'è in Range("J12")? Letteralmente, intendo.

          Perchè per costruire un percorso devi concatenare le directory con lo slash: se manca nelle celle indicate, lo devi mettere tu nel codice.

          La stampa con ExportAsFixedFormat diventa più grande se la qualità è standard (impostala su Minimum).

          Il carattere Arial non dovrebbe influenzare la dimensione del file.

          #8772 Score: 0 | Risposta

          Riky38
          Partecipante

            Grazie per aver risposto, commento quello che c'e nelle celle :

            in Q13 il nome da assegare al file pdf

            in Q14 il percorso dove salvare il file pdf

            in FileName = SavePath & Range("J2").Value  nulla ho eliminato la riga di codice ma continua ad assegare il nome del file originale.

            come posso risplvere il problema?

            Prova effettuata con La stampa con ExportAsFixedFormat

            Formato standar file creato 187 KB

            Formato Minimun  file creato 184 KB

            Formato cambiando il carattere con Arile 6,98 KB

             

             

            #8774 Score: 0 | Risposta

            vecchio frac
            Senior Moderator
              245 pts
              SavePath = Range("Q14") 
              FileName = Range("Q13")
              'verrà proposto in automatico
              FileName = SavePath & Range("J2").Value

              Nel tuo codice originale la variabile FileName assume il valore della seconda assegnazione (quindi non sarà mai Range("Q13"), perchè subito dopo c'è l'assegnazione con SavePath e Range("J2").Value).

              In linea generale però dovresti curare che ci sia uno slash:

              'verrà proposto in automatico
              FileName = SavePath & "\" & Range("J2").Value

              e quindi se in Q13 hai il nome del file e in Q14 il percorso dovresti fare una cosa del genere:

              FileName = Range("Q14") & "\" & Range("Q13")
              'adesso in FileName hai il percorso + il nome del file

               

              La faccenda dell'Arial mi incuriosisce 🙂

              #8779 Score: 0 | Risposta

              Riky38
              Partecipante

                Ho provato a corregere come consigliato, pero continua a prendere il percorso ma il nome del file no

                forse sbaglio qualcosa allego il codice con la modifica.

                 

                 

                #8780 Score: 0 | Risposta

                Riky38
                Partecipante

                  Sub stampa_PDF_BullZip() 'STAMPA PDF SOLO SELEZIONE XXXXXXXXXXXX
                  Dim S As String
                  S = ActivePrinter
                  Dim SavePath As String, FileName As String
                  FileName = Range("Q14") & "\" & Range("Q13")
                  Application.ScreenUpdating = False
                  Sheets("Pannello").Select
                  ActiveSheet.PageSetup.PrintArea = "$A$11:$K$23"
                  With ActiveSheet.PageSetup
                  'With Selection
                  'Selection.PrintPreview
                  Sheets("Pannello").PrintOut Copies:=1, ActivePrinter:=Trim(Sheets("Pannello").Range("$E$31")), Collate:=True
                  'Sheets("Pannello").PrintPreview Copies:=1, ActivePrinter:=Trim(Sheets("Pannello").Range("$E$31")), Collate:=True
                  ActivePrinter = S
                  End With
                  Application.ScreenUpdating = True
                  End Sub

                  #8781 Score: 0 | Risposta

                  Riky38
                  Partecipante

                    per il testo Arial ho fatto le prove e la dimesione dei file creati e quella riportata, non sò come è possibile. prova a fare delle prove, e fammi sapere usa un foglio e insrisci del testo e un po di formattazione, stampa il foglio, poi cambia solo il carattere con arial e rifai la stampa.

                    #8782 Score: 0 | Risposta

                    Riky38
                    Partecipante

                      se si può risolvere il problema della grandezza del file creato, è più comodo usare il comando di excel per stampare il file pdf

                      #8785 Score: 0 | Risposta

                      vecchio frac
                      Senior Moderator
                        245 pts

                        Riky38 ha scritto:

                        continua a prendere il percorso ma il nome del file no

                         

                        Nel codice, FileName viene creata e valorizzata, ma poi non viene mai usata. Non c'è alcuna istruzione che dica "questo è il nome del file pdf". Se non utilizzi l'istruzione incorporata, devi prima salvare il file con quel nome, poi quando stampi su pdf, questo avrà il nome del file appena salvato.

                        #8786 Score: 0 | Risposta

                        Riky38
                        Partecipante

                          non sò come fare, mi potresti modificare la riga di codice.

                          #8787 Score: 0 | Risposta

                          vecchio frac
                          Senior Moderator
                            245 pts

                            Io propongo una cosa così (non testata)

                            Sub stampa_PDF_BullZip() 'STAMPA PDF SOLO SELEZIONE XXXXXXXXXXXX
                            Dim S As String
                            Dim SavePath As String, FileName As String
                              S = ActivePrinter
                              FileName = Range("Q14") & "\" & Range("Q13")
                              ThisWorkbook.SaveAs FileName
                              Application.ScreenUpdating = False
                              Sheets("Pannello").Select
                              ActiveSheet.PageSetup.PrintArea = "$A$11:$K$23"
                              With ActiveSheet.PageSetup
                                'With Selection
                                'Selection.PrintPreview
                                Sheets("Pannello").PrintOut Copies:=1, ActivePrinter:=Trim(Sheets("Pannello").Range("$E$31")), 
                                Collate:=True
                                'Sheets("Pannello").PrintPreview Copies:=1, ActivePrinter:=Trim(Sheets("Pannello").Range("$E$31")), 
                                Collate:=True
                                ActivePrinter = S
                              End With
                              Application.ScreenUpdating = True
                            End Sub
                            #8790 Score: 0 | Risposta

                            Riky38
                            Partecipante

                              ho fatto una prova e adesso funziona, volevo chiede e possibile salvare il file creato senza aprire la finesta di BullZip, dove devo  premere il tasto salva.

                              Volevo sapere se hai fatto qualche prova per verificare il problema della stampa pdf incorporato in excel, stano che crea i fili di dimenzione più del doppio con caratte differrente da ariel, mentre se il caratte è ariel crea dei file pdf di dimenzioni minori rispetto ad altri programmi che creano pdf.

                              #8794 Score: 0 | Risposta

                              vecchio frac
                              Senior Moderator
                                245 pts

                                Riky38 ha scritto:

                                senza aprire la finesta di BullZip

                                Ho guardato rapidamente la documentazione, con BullZip c'è la versione da terminale (a linea di comando) chiamata "pdfcmd.exe" che si potrebbe chiamare con gli opportuni parametri per produrre il pdf desiderato. Mi par di capire che funziona come pdftk che uso con successo da tanto tempo. Ti basta fare qualche prova per verificare che riesca a produrre il file pdf partendo da un file Excel e poi se funziona inglobare la riga di comando nel tuo codice. Altrimenti non c'è modo di evitare la finestra di Bullzip (cioè forse si può provare con SendKeys ma non ne sono così sicuro).

                                Non ho fatto ulteriori test con il carattere Arial, mi fido della tua affermazione 🙂

                                #8830 Score: 0 | Risposta

                                Riky38
                                Partecipante

                                  grazie per l'aiuto, proverò a fare delle prove, altra cosa guardando attentamente ho visto che quando creo il file pdf mi crea un file excel nuovo con il nome del file pdf, non è possibile evitare questa creazione di file, il problema e che chiude il file originale senza salvare le modifiche e crea il nuovo file che a me non necessita. Ci sono altri programmi che si posso gestire meglio, per creare il pdf e salvare con nome e nella director specificata.

                                  Purtroppo io vado a tentativi, non sono esperto di Vba.

                                Login Registrati
                                Stai vedendo 15 articoli - dal 1 a 15 (di 15 totali)
                                Rispondi a: Stampa pdf con nume recorso in una cella con BullZip
                                Gli allegati sono permessi solo ad utenti REGISTRATI
                                Le tue informazioni: