• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Tijdelijk printer wijzigen in Excel 2010

Status
Niet open voor verdere reacties.

ferryvdm

Gebruiker
Lid geworden
1 mrt 2012
Berichten
19
Goedmiddag,

Ik probeer om in een werkblad voor het printen tijdelijk een andere printer te selecteren.
Standaard staat bij ons een zwarte printer geinstalleerd en dat moet bij het afdrukken vervangen worden door een kleurenprinter.
Het is een netwerkwerkblad en wordt gebruikt door zowel XP als W7 gebruikers.

Volgens onderstaande code wil het echter maar niet lukken,
PHP:
Sub Macro1()
Dim strdefaultprinter As String
strdefaultprinter = Application.printer("\\sbsibl\MF_beneden_ZW op Ne05:")

Set Application.printer = Application.printer("\\sbsibl\MF_beneden_KL op Ne05:")

DoCmd.ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False

Set Application.printer = Application.printer("\\sbsibl\MF_beneden_ZW op Ne05:")



End Sub

Zoals te zien is gaat het eigenlijk om dezelfde printer die door de systeembeheerder twee standaard instellingen heeft waaruit te kiezen is.

Heeft iemand een idee?

Groetjes

Ferry
 
Hierbij een macro die ik gebruik om dit op te vangen,
tevens heet de printer niet altijd bij iedereen hetzelfde de "op Ne05" kan anders zijn.

Code:
'dit gedeelte is voor windows XP computers
  myprinter = Application.ActivePrinter
    If Application.OperatingSystem = "Windows (32-bit) NT 5.01" Then
         x = 0
        Do Until x = 9
        On Error Resume Next
        Application.ActivePrinter = "\\HLM\PRT-17-RICOH-MPC2800.NDPS.SRV op Ne0" & x & ":"
        If Err.Number <> 0 Then
            x = x + 1
            Else: Exit Do
        End If
        Loop
        .PrintOut
    End If
    
'===============================================================================
'dit gedeelte is voor windows 7 computers
If Application.OperatingSystem = "Windows (32-bit) NT 6.01" Then
         x1 = 0
        Do Until x1 = 9
        On Error Resume Next
        Application.ActivePrinter = "PRT-17 PCL6 Driver for Universal Print op Ne0" & x1 & ":"
        If Err.Number <> 0 Then
            x1 = x1 + 1
            Else: Exit Do
        End If
        Loop
    .PrintOut
end if
Application.ActivePrinter =myprinter

    End If

Niels
 
Niels,

als ik jouw antwoord verwerk krijg ik dit
PHP:
Sub testprint()



myprinter = Application.ActivePrinter
    If Application.OperatingSystem = "windows (64-bit) NT 6.01" Then x1 = 0
            Do Until x1 = 9
            On Error Resume Next
            Application.ActivePrinter = "prt-17 pcl6 driver for universal print op Ne0" & x1 & ":"
            If Err.Number <> 0 Then
            x1 = x1 + 1
            Else: Exit Do
            End If
            Loop
        ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False
    [B]End If[/B]
    Application.ActivePrinter = myprinter

        End If
    


End Sub

Bij de vetgedrukte end if krijg ik dan de melding "compileerfout: end if zonder blok if"
Als ik deze delete dan krijg ik de melding bij de volgende end if.

Als ik dan ga printen wordt het geprint in zwart en niet in kleur.

Heb ik misschien iets fout overgenomen???

Groetjes

Ferry
 
Hierbij de aangepaste code zoals jij je if statement maakt, en wordt de printer altijd uitgevoerd.

Code:
Sub testprint()
 
myprinter = Application.ActivePrinter
    If Application.OperatingSystem = "windows (64-bit) NT 6.01" Then x1 = 0
            Do Until x1 = 9
                On Error Resume Next
                Application.ActivePrinter = "prt-17 pcl6 driver for universal print op Ne0" & x1 & ":"
                If Err.Number <> 0 Then
                    x1 = x1 + 1
                Else: Exit Do
                End If
            Loop
        ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False
Application.ActivePrinter = myprinter

End Sub

Dit is een if statement zoals ik hem aageven had en wordt alleen uitgevoert op een windows 7 computer
Code:
[CODE]Sub testprint()
 
myprinter = Application.ActivePrinter
    If Application.OperatingSystem = "windows (64-bit) NT 6.01" Then 
             x1 = 0
            Do Until x1 = 9
                On Error Resume Next
                Application.ActivePrinter = "prt-17 pcl6 driver for universal print op Ne0" & x1 & ":"
                If Err.Number <> 0 Then
                    x1 = x1 + 1
                Else: Exit Do
                End If
            Loop
        ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False
        end if
Application.ActivePrinter = myprinter

End Sub
[/CODE]

Zie verschil van de regel x1=0
als je meteen iets na then zet wordt de if statement afgesloten.

Je moet je printernaam nog wel veranderen anders gaat het fout, lijkt mij zeer toevaliig dat jouw printer hetzelfde heet.


PS gelieve de juiste codetags (#) te gebruiken.

Niels
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan