• 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.

bij elk document andere printer

Status
Niet open voor verdere reacties.

xperod

Gebruiker
Lid geworden
14 nov 2008
Berichten
14
Goedemorgen!

is het mogelijk om in een excel document automatisch een andere printer te kiezeb dan de standaard printer?
ik had iets gelezen over vba code maar dat werkt in iedergeval niet! is er nog een ander manier voor?
ik gebruik office 2007

groetjes sem
 
Waarom werkt VBA niet?

En wanneer wil je van printer wisselen; is dat afhankelijk van een waarde in je workbook?
Ron
 
Ik heb namelijk een stuk of 50 certificaten die allemaal weer een andere papier lade nodig heeft nu heb ik alle drie de lades van de printer appart geïnstalleerd als een printer. Nu zou het makkelijk zijn als ik bijvoorbeeld met standaard in een documentje kon zetten dat bij dit document deze printer hoort en dat zo bij elk document. Is dat op een manier mogelijk?

Groetjes Sem
 
ja, via VBA, maar als dat geen optie is .... ???
 
Sem,

Misschien zet dit je op het goede spoor:
Code:
Sub HP()

    Application.ActivePrinter = "HP Photosmart 7400 Series op Ne04:"
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
        "HP Photosmart 7400 Series op Ne04:", Collate:=True
End Sub
of
Code:
Sub PDF()

    Application.ActivePrinter = "PDF995 op Ne01:"
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
        "PDF995 op Ne01:", Collate:=True
End Sub
 
Laatst bewerkt:
Misschien op deze manier. Zet op elk document in A1(of een andere cel naar keuze) een cijfer van 1 tot ... waar elk cijfer een printer vertegenwoordigd. Onderstaande macro( die verder kan uitgebreid worden) controleert dit cijfer en kiest de overeenkomstige printer om het actieve blad af te drukken.
Code:
Sub printen()
Select Case ActiveSheet.[A1]
    Case 1
        Application.ActivePrinter = "HP Photosmart 7400 Series op Ne04:"
        ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
            "HP Photosmart 7400 Series op Ne04:", Collate:=True
    Case 2
        Application.ActivePrinter = "PDF995 op Ne01:"
        ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
        "PDF995 op Ne01:", Collate:=True
End Select
End Sub
 
Hartstikke bedankt allemaal voor jullie antwoorden.
Als ik de printernaam uit printer eigenschappen kopieer en op de plek van de printer naam zet krijg ik bij het uit voeren de fout 1004. Nu zie ik bij jullie op Ne01 of op Ne04 er achter staan waar verwijst dit naar? waar kan ik dit vinden? zodra ik een macro opneem en dan de pagine afdruk op de juiste printer kan ik de naam nergen terug vinden als ik de opname bekijk. Iemand enig idee?

Groetjes Sem
 
Code:
Public Function GetPrinterPort2(strPrinterName As String) As String
    Dim objReg As Object, strRegVal As String, strValue As String
    Const HKEY_CURRENT_USER = &H80000001
    Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
    strRegVal = "Software\Microsoft\Windows NT\CurrentVersion\PrinterPorts\"
    objReg.GetStringValue HKEY_CURRENT_USER, strRegVal, strPrinterName, strValue
    GetPrinterPort2 = Mid$(strValue, 10, 5)
End Function

Sub printers()
  With CreateObject("Wscript.network").EnumPrinterConnections
    For j = 0 To .Count - 1 Step 2
      Cells(j \ 2 + 1, 1) = .Item(j + 1) & " op " & GetPrinterPort2(.Item(j + 1))
    Next
  End With
End Sub

Zet bovenstaande code in een standaardmodule en draai de Sub Printers. Nu krijg je alle info over alle geïnstalleerde printers ( Naam en Printerpoort)
 
Helemaal super het werkt perfect!
Moet ik nu al die werkmappen aanpassen en op slaan al werkblad met macro's?
Of kan ik misschien op netwerklocatie zetten en zorgen dat die automatisch opent?
Nu heb ik nog het volgende probleem:
De netwerk printers hangen aan een Switch. En de printers zijn geinstalleerd op een pc. die vanaf die pc verder worden gedeeld naar alle ander pc's

Wat er gebeurt is het volgende:
De printer staat op NE04 bij de centrale PC. De macro kiest dan ook NE04. Nu kan het zomaar gebeuren dat de printer bij de centrale PC opeens niet meer op Ne04 staat, mar opeens op Ne06.

Op de overige PC's (2 laptops) staat de printer ook op Ne04 (logisch, want ze gebruiken allemaal dezelfde macro). Ook op deze PC's kan XP zomaar besluiten de printer opeens aan een andere poort toe te wijzen.



Groetjes Sem
 
Laatst bewerkt:
Hoe wil je dan enige consistentie brengen in je macro, aangezien printerpoorten zomaar kunnen wijzigen ???
Je zou ook kunnen proberen om de printerpoort dynamisch te bepalen tijdens het afdrukken

Code:
Public Function GetPrinterPort2(strPrinterName As String) As String
    Dim objReg As Object, strRegVal As String, strValue As String
    Const HKEY_CURRENT_USER = &H80000001
    Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
    strRegVal = "Software\Microsoft\Windows NT\CurrentVersion\PrinterPorts\"
    objReg.GetStringValue HKEY_CURRENT_USER, strRegVal, strPrinterName, strValue
    GetPrinterPort2 = Mid$(strValue, 10, 5)
End Function

Sub Printen()
Dim strPrinter As String
strPrinter = "HP LaserJet 2100 PCL6" 'dit kan je eventueel vervangen door een celwaarde
With Application
    .ScreenUpdating = False
    .ActivePrinter = strPrinter & " op " & GetPrinterPort2(strPrinter)
End With
....rest van de printcode

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