Delen via

Printbestemming in VBA

Anoniem
2010-06-22T14:37:23+00:00

Hoe kan ik in de 'beforeprint' procedure nagaan of we een schermvoorbeeld dan wel een efffectieve afdruk aan het maken zijn?

Microsoft 365 en Office | Excel | Voor thuisgebruik | Windows

Vergrendelde vraag. Deze vraag is gemigreerd vanuit de Microsoft Ondersteuning-community. U kunt met een stem aangeven of de inhoud nuttig is, maar u kunt geen opmerkingen of antwoorden toevoegen of de vraag volgen.

0 opmerkingen Geen opmerkingen

3 antwoorden

Sorteren op: Meest nuttig
  1. Anoniem
    2010-06-29T08:17:16+00:00

    Heeft het antwoord dat je hier of op je post op het engelstalige Answers forum kreeg je verder kunnen helpen ?


    Met vriendelijke groet,

    Dominique D.

    Microsoft Partner

    Was dit antwoord nuttig?

    0 opmerkingen Geen opmerkingen
  2. Anoniem
    2010-06-24T10:24:53+00:00

    Ooit gevonden. mag je zelf aan werken.

    De macro slaat de ActivePrinter op en maakt Adobe PDF de ActivePrinter en print

    Daarna zet hij de eerste printer weer terug

    Sub Test()

    Dim str As String

    Dim strNetworkPrinter As String

    str = Application.ActivePrinter

    strNetworkPrinter = GetFullNetworkPrinterName("Adobe PDF")

    If Len(strNetworkPrinter) > 0 Then

    Application.ActivePrinter = strNetworkPrinter

    ActiveSheet.PrintOut

    End If

    Application.ActivePrinter = str

    End Sub

    Function GetFullNetworkPrinterName(strNetworkPrinterName As String) As String

    Dim strCurrentPrinterName As String, strTempPrinterName As String, i As Long

    strCurrentPrinterName = Application.ActivePrinter

    i = 0

    Do While i < 100

    strTempPrinterName = strNetworkPrinterName & " on Ne" & Format(i, "00") & ":"

    On Error Resume Next ' try to change to the network printer

    Application.ActivePrinter = strTempPrinterName

    On Error GoTo 0

    If Application.ActivePrinter = strTempPrinterName Then

    GetFullNetworkPrinterName = strTempPrinterName

    i = 100 ' makes the loop end

    End If

    i = i + 1

    Loop

    Application.ActivePrinter = strCurrentPrinterName ' change back to the original printer

    End Function

    !!!!!!!!!!!

    "In de funcie verander on in op omdat je een Nederlandse machine hebt denk ?

    > strTempPrinterName = strNetworkPrinterName & " on Ne" & Format(i, "00") & ":"

    groet uit mooi Drunen


    Groet uit mooi Drunen.

    Was dit antwoord nuttig?

    0 opmerkingen Geen opmerkingen
  3. Anoniem
    2010-06-22T16:38:45+00:00

    Theo,

    Ik denk dat dat niet mogelijk is.

    Als je wilt bereiken dat slechts één van beide wordt uitgevoerd, zou je de opdracht kunnen annuleren en dan de wel toegestane actie in de code opnemen, iets als:

    Private Sub Workbook_BeforePrint(Cancel As Boolean)

        Cancel=True

    ActiveWorkbook.PrintOut

    End Sub

    Jan

    Was dit antwoord nuttig?

    0 opmerkingen Geen opmerkingen