Nå efter at have søgt som en gal, fandt jeg noget som var interessant og det prøvede jeg så og det lykkedes sgu, så er ret stolt af mig selv lige nu :o)
resultat af det hele kommer herunder, siden hvor jeg fandt frem til fremgangs måde er her :
http://www.excelguru.ca/node/21#SingleProgrammet PDFCreator er genialt og gratis og det bedste ved det at det slet ikke laver nogen form for reklame...sejt nok at der stadig er folk som kan lave noget godt uden at skulle reklamere.... Programmet har et hav af muligheder der iblandt også mulighed for at printe ud på anden printer, men denne mulighed kunne jeg ikke få til at fungere.
Men denne kode virker tilsyneladende har dog ikke afprøvet den endnu med mange brugere.
Anyway her er kode som både gemmer PDF fil med bestemt OutPut Filename og printer ud på papir printer:
Option Explicit
Private Function FileExist(ByVal FileName As String) As Boolean
FileExist = (Dir(FileName) > "")
End Function
Sub PrintToPDF_Early()
'Author : Ken Puls (
www.excelguru.ca)
'Macro Purpose: Print to PDF file using PDFCreator
' (Download from
http://sourceforge.net/projects/pdfcreator/)
' Designed for early bind, set reference to PDFCreator
Dim pdfjob As PDFCreator.clsPDFCreator
Dim sPDFName As String
Dim sPDFPath As String
Dim FileName As String
Dim CelleName As String
Dim GammelPrinter As String
GammelPrinter = Application.ActivePrinter ' Gemmer Aktiv Printer
CelleName = Range("B3")
FileName = "flg" & " " & ActiveSheet.Name & " " & Range("B3") ' Danner Fil navn ud fra kriterier omkring ark og lign.
'/// Change the output file name here! ///
sPDFName = FileName & ".PDF" ' Navn som PDf skal gemmes som
sPDFPath = "F:\test\pdf\" ' Sti til hvor PDF sakl gemmes
If FileExist("F:\test\pdf\" & "*" & CelleName & "*") Then
MsgBox "Fejl!! , Nummer findes allerede, vælg venligst nyt Nummer"
Exit Sub
Else
'Check if worksheet is empty and exit if so
If IsEmpty(ActiveSheet.UsedRange) Then Exit Sub
Set pdfjob = New PDFCreator.clsPDFCreator
With pdfjob
If .cStart("/NoProcessingAtStartup") = False Then
MsgBox "Can't initialize PDFCreator.", vbCritical + _
vbOKOnly, "PrtPDFCreator"
Exit Sub
End If
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = sPDFPath
.cOption("AutosaveFilename") = sPDFName
.cOption("AutosaveFormat") = 0 ' 0 = PDF
.cClearCache
End With
'Print the document to PDF
ActiveSheet.PrintOut Copies:=1, ActivePrinter:="PDFCreator"
'Wait until the print job has entered the print queue
Do Until pdfjob.cCountOfPrintjobs = 1
DoEvents
Loop
pdfjob.cPrinterStop = False
'Wait until PDF creator is finished then release the objects
Do Until pdfjob.cCountOfPrintjobs = 0
DoEvents
Loop
pdfjob.cClose
Set pdfjob = Nothing
End If
ActivePrinter = GammelPrinter ' Aktivere Gammel Printer igen
ActiveSheet.PrintOut Copies:=1, ActivePrinter:="HP Color"
End Sub
mvh dsj