Stampare e accodare in PDF



  • Stampare e accodare in PDF
    di rplacanica (utente non iscritto) data: 29/05/2015 11:07:03

    Buongiorno a tutti,
    come al solito quando ho un problema particolarmente ostico passo qui a veder se tra le vs menti illuminate vi sia alcuno in grado di aiutarmi.

    Devo creare un report in pdf partendo da un file excel al cui interno vi sono differenti sched da stampare.
    Su queste schede vanno effettuate delle "scelte" (passo dei parametri) sulla base dei quali vengono poi aggiornati i dati presenti nei singoli fogli.
    nella stessa scheda poi possono essere presenti più report, che non vengono necessariamente stampate insieme...
    ma questo non è un grande problema, visto che in stampa ordinaria il tutto funziona egregiamente (ho usato il registratore e non ha dato problemi )

    Ora vorrei evitare la stampa effettiva, ma vorrei procedere a PDFare il tutto.
    il problema sta nel fatto che:
    1 ogni volta che viene lanciata una stampa pdf, mi chiede il nome del file, vorrei passare il nome in automatico
    --> report_aprile_1; report_aprile_2; ...; report_aprile_25
    2 vorrei accodare (append) le nuove pagine stampate al file creato con la prima stampa immediatamente e non dover riaprire con PDF distiller unire tutti i 25 fogli manualmente.

    Grazie in anticipo!

     
    Sub PRINT_REP_PACK()
    '
    ' stampa sales reporting package mese corrente
    
     Sheets("COVER").Select
        ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
            IgnorePrintAreas:=False
        Sheets("first").Select
        ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
            IgnorePrintAreas:=False
        Sheets("R x").Select
        Range("N2:O2").Value = "Generico"
        ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate _
            :=True, IgnorePrintAreas:=False
            Range("N2:O2").Value = "CDMO"
        ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate _
            :=True, IgnorePrintAreas:=False
            Range("N2:O2").Value = "DISTRIBUTION"
        ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate _
            :=True, IgnorePrintAreas:=False
            Range("N2:O2").Value = "TOTALE"
        ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
            IgnorePrintAreas:=False
        Sheets("SECOND").Select
        ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
            IgnorePrintAreas:=False
    '.... ho omesso gli altri fogli...
    Application.ScreenUpdating = False
    End Sub



  • di lepat (utente non iscritto) data: 30/05/2015 08:15:52

    questa macro stampa su un unico pdf tutti i fogli che hanno nella cella A1 il numero 1, potresti adattarla al tuo scopo

     
    Sub exportSomeSheetsToPdf_IF()
    filenameSave = "F:DownloadNewBook.pdf"
    Application.ScreenUpdating = False
    Count = 0
    For Each ws In ActiveWorkbook.Sheets
      If ws.Range("A1") = 1 Then
        If Count = 0 Then
          ws.Select True
          Count = Count + 1
        Else
          ws.Select False
          Count = Count + 1
        End If
      End If
    Next ws
    Application.ScreenUpdating = True
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
        filenameSave, Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        True
    Sheets(1).Select
    End Sub



  • di marxitpa data: 01/06/2015 17:51:26

    grazie lepat per il suggerimento. Se alleghi un file di esempio te ne sarò grato.