15. april 2007 - 21:18Der er
10 kommentarer og 1 løsning
Print til PDF
Jeg har behov for at kunne printe til PDF fra Excel via VBA uden jeg bliver spurgt om filnavn, da VBA generer 20 PDF-filern for mig, så det er irriterende, at skulle navngive dem alle hver gang.
Jeg bruger adobe acrobat 7,0 og jeg har acrobat distiller 7,0 men forstår ikke programmet - skal jeg bruge det og hvordan ??
Jeg har forsøgt med følgende:
Sub printPDF() Dim PDFFileName As String PDFFileName = "c:\mypdf.pdf" ActiveWindow.SelectedSheets.PrintOut copies:=1, preview:=False, ActivePrinter:="Adobe PDF på Ne01:", printtofile:=False, collate:=True, prtofilename:=PDFFileName End Sub
Den kører uden fejl og laver også en PDF-fil, men filen kan ikke åbnes og læses med PDF reader.
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
Den her laver kun en PDF-fil og dermed spørger den kun en gang, hvis du vælger PDF-printer!
Kabbak har lavet den til mig!
Private Sub cmdOK_Click() Dim navn As String, i As Long 'Lukker Formular Unload Me
'Åbner Udkrivdialogbox så printer kan vælges A = Application.Dialogs(xlDialogPrinterSetup).Show If A = True Then
' Dim Ark As String, A
Application.ScreenUpdating = False
'Valg af ark der skal udskrives If cbOpgørelsesark = True Then Ark = "Opgørelsesark" & Chr(44) If cbDiagram = True Then Ark = Ark & "Diagram" & Chr(44)
Ark = Left(Ark, Len(Ark) - 1) A = Split(Ark, ",")
Select Case UBound(A) Case 0: Sheets(Array(A(0))).Select Case 1: Sheets(Array(A(0), A(1))).Select
End Select
'Udskriver de valgte ark ActiveWindow.SelectedSheets.PrintOut
End If
'Stiller sig i celle C3 i ark Info Sheets("info").Select Range("C3").Select
Nu har jeg ikke afprøvet den, men jeg tror ikke det kan bruges.
Jeg har en pivot tabel, hvor jeg skal have udskrevet 2 grafer pr. afdeling.
1) Afd. 10 vælges 2) Dato rykkes ned i pivotfelt 3) Graf 1 udskrives som PDF (skal hedde Tid10.pdf) 4) Dato rykkes tilbage 5) Graf 2 udskrives som PDF (skal hedde Tid10a.pdf) 6) Afd. 20 vælges 7) Dato rykkes ned i pivotfelt 8) Graf 1 udskrives som PDF (skal hedde Tid20.pdf) 9) Dato rykkes tilbage 10) Graf 2 udskrives som PDF (skal hedde Tid20a.pdf) o.s.v. for 7 afdelinger i alt
Graf 1 og 2 ændres altså hele tiden, hvorfor jeg ikke tror dit forslag virker.
Det hele virker som sådan, jeg bliver bare afbrudt hver gang jeg skal navngive pdf-filen.
Til sidst forbinder jeg alle pdf-filer i en via acrobat combinder. Hvis jeg kan samle dem alle i én pdf-fil fra starten, så vil det være perfekt.
Sub PDFPrint() Const stPDFPrinter As String = "EdocPrinter PDF Pro:" Const stPath As String = "C:\PDFfiler\" Dim stFilnavn As String Dim stOldPrinter As String On Error GoTo errormsg ' filnavn fra celle B1 stFilnavn = ActiveSheet.Range("B1").Value 'hvad hedder nuværende printer stOldPrinter = Application.ActivePrinter 'udskriv til pdfprinter ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:=stPDFPrinter, _ Collate:=True, prtofilename:=stPath & stFilnavn 'skift tilbage til rigtig printer Application.ActivePrinter = stOldPrinter Exit Sub errormsg: MsgBox "Der er sket en fejl, Arket er ikke printet ud i pdf-format" End Sub
Da pdf-distilleren er "sparket i luften", bør den lukkes igen med quit, men hvis du får en fejl, ville jeg slette den. Da du ikke generer dine prints på én gang, kan jeg ikke se nogen løsning på, at du skal samle filerne bagefter manuelt. Desværre. Måske er der nogle pdf-hajer, der kan det.
Det hjælper vist, hvis jeg husker at klikke af det rigtige sted *s*
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.