Print instellingen automatisch kiezen

Status
Niet open voor verdere reacties.

1107972

Gebruiker
Lid geworden
5 mei 2004
Berichten
186
Hallo,

Ik gebruik in mijn excelbestand (excel 2000) een code om wanneer er een plot gemaakt wordt bepaalde printerinstellingen te kiezen. Hiervoor heb ik de onderstaande code in "ThisWorkbook" geplaats.

Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
     Dim sh As Worksheet
        For Each sh In ActiveWorkbook.Worksheets
            With sh.PageSetup
                .TopMargin = Application.CentimetersToPoints(2)
                .BottomMargin = Application.CentimetersToPoints(2)
               .LeftMargin = Application.CentimetersToPoints(1)
                .RightMargin = Application.CentimetersToPoints(1)
            End With
        Next sh
End Sub

Nu werkt deze code goed als ik wil printen naar een zwart wit laserprinter. Maar als ik met CutePDF er een PDF bestand van wil maken zou ik graag een paar waarden anders zien in verband met de opmaken. Namelijk de marge aan de onderzijde moet dan 2.1cm worden en indien mogelijk in kleur afdrukken indien dit niet als standaard ingesteld staat bij de printer. Deze code moet wel gebruikt kunnen worden op meerdere pc's.

Alvast bedankt,

mvg Eric
 
Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
  For Each sh In ActiveWorkbook.Worksheets
    With sh.PageSetup
      .TopMargin = Application.CentimetersToPoints(2.1)
      .BottomMargin = .topmargin
      .LeftMargin = Application.CentimetersToPoints(1)
      .RightMargin = .leftmargin
    End With
  Next
End Sub
 
Oke, ik ben misschien niet helemaal duidelijk geweest. Wat ik wil is een soort if functie in de macro. Zodat als de gekozen printer bij afdrukopties de pdf writer is ondermarge 2.1 wordt en de pagina in kleur wordt afgedrukt. In onderstaande code kan je misschien een beetje zien wat ik bedoel. Alleen weet ik hiervoor de juiste commando's/regels niet.

Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
     Dim sh As Worksheet
        For Each sh In ActiveWorkbook.Worksheets
            With sh.PageSetup

[B][I]If PrinterName = "CutePdf Writer" 
Then
                .BottomMargin = Application.CentimetersToPoints(2.1)
                .Colormode = Color
Else
                .BottomMargin = Application.CentimetersToPoints(2)
                .Colormode = Mono
End If[/I][/B]

                .TopMargin = Application.CentimetersToPoints(2)
               .LeftMargin = Application.CentimetersToPoints(1)
                .RightMargin = Application.CentimetersToPoints(1)
            End With
        Next sh
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan