Hallo,
Ik heb geen idee wat ik nu op het moment fout doe. Ik probeer de application.activeprinter te veranderen in een andere printer. Wat ik ook doe, ik krijg het niet voor elkaar.
code om te de printer te wijzigen, geeft het goede resultaat en het goede Ne nummer.
Gedeeltelijk printer code
Zodra ik wil printen, gebruikt excel de default printer of ik krijg een foutmelding(1004). Zodra ik ActivePrinter:= Printernaam in ActivePrinter:="aaaaaaa op Ne01:" verander, krijg ik ook een foutmelding(methode en object error 1004).
Ik heb veel varianten geprobeerd, maar het is me nog niet gelukt.
Het viel me ook op, dat de printers niet zichtbaar zijn in vba, na het openemen van printopdrachten door verschillende printers.
Ik heb geen idee wat ik nu op het moment fout doe. Ik probeer de application.activeprinter te veranderen in een andere printer. Wat ik ook doe, ik krijg het niet voor elkaar.
code om te de printer te wijzigen, geeft het goede resultaat en het goede Ne nummer.
Code:
Function FindPrinter(ByVal Printername As String) As String
Dim Arr As Variant
Dim Device As Variant
Dim Devices As Variant
Dim Printer As String
Dim RegObj As Object
Dim RegValue As String
Const HKEY_CURRENT_USER = &H80000001
Set RegObj = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
RegObj.enumvalues HKEY_CURRENT_USER, "Software\Microsoft\Windows NT\CurrentVersion\Devices", Devices, Arr
For Each Device In Devices
RegObj.getstringvalue HKEY_CURRENT_USER, "Software\Microsoft\Windows NT\CurrentVersion\Devices", Device, RegValue
Printer = Device & " on " & Split(RegValue, ",")(1)
If InStr(1, Printer, Printername, vbTextCompare) > 0 Then
FindPrinter = Printer
Exit Function
End If
Next
End Function
Gedeeltelijk printer code
Code:
If IsArray(Names) Then
For Each s In ActiveWorkbook.Worksheets
For i = 0 To UBound(Names)
If StrComp(s.Name, Names(i), vbTextCompare) = 0 Then
If Names(i) = "Montagebon" Then
Printernaam = FindPrinter(Worksheets("invoerscherm").range("L93"))
End If
If Names(i) = "Productietek" Then
Printernaam = FindPrinter(Worksheets("invoerscherm").range("L92"))
If actie = "a4" Then
s.PrintOut ActivePrinter:=Printernaam
GoTo labela4eind
End If
Zodra ik wil printen, gebruikt excel de default printer of ik krijg een foutmelding(1004). Zodra ik ActivePrinter:= Printernaam in ActivePrinter:="aaaaaaa op Ne01:" verander, krijg ik ook een foutmelding(methode en object error 1004).
Ik heb veel varianten geprobeerd, maar het is me nog niet gelukt.
Het viel me ook op, dat de printers niet zichtbaar zijn in vba, na het openemen van printopdrachten door verschillende printers.
Laatst bewerkt: