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

printer wissel

Status
Niet open voor verdere reacties.

RobertHak

Gebruiker
Lid geworden
9 okt 2011
Berichten
77
Wie kan mij helpen met het volgende:

Ik wil een bestand printen op een labelprinter die in het netwerk hangt. Ik wil dan in de vba code afdwingen dat de labelprinter gekozen wordt.

Ik heb hiervoor de volgende code
Application.ActivePrinter = "\\hakw1-dc1\wer1-verk-mfp-01 op Ne08:"
ExecuteExcel4Macro _
"PRINT(1,,,1,,,,,,,,2,""\\hakw1-dc1\wer1-verk-mfp-01 op Ne08:"",,TRUE,,FALSE)"


Dit werkt goed zolang ik vanuit dat werkstation de code uit voer.
Ik werk echter met meerdere werkstations, op een ander werkstation kreeg ik een foutmelding.
Na wat zoekwerk blijkt dat de printpoort daar nr. 18 is (zie opgenomen code hieronder)
Weet iemand een oplossing waardoor ik vanuit ieder werkstation naar die printer kan sturen

Application.ActivePrinter = "\\hakw1-dc1\wer1-verk-mfp-01 op Ne18:"
ExecuteExcel4Macro _
"PRINT(1,,,1,,,,,,,,2,""\\hakw1-dc1\wer1-verk-mfp-01 op Ne18:"",,TRUE,,FALSE)"
 
Alvast bedankt voor de tip.

Het werkt goed.

kan iemand mij nog helpen met de volgende verbetering:

In onderstaande code moet de gewenste printer in de code aan gegeven worden. het mooiste zou zijn als ik een bepaalde cel in het document de printernaam kan vermelden.
Dat deze vervolgens als varriabele wordt opgeslagen en op de plaats komt te staan waar nu ook de printernaam staat (rood gemarkeerd). laten we stellen dat de printernaam in cel A1 staat van blad 1.

Kan iemand mij helpen om dit voor elkaar te krijgen

Sub PrinterSelector()
'
' selecteert voor ieder document de gewenste printer
Sheets("blad2").Select

Dim str As String
Dim strNetworkPrinter As String
str = Application.ActivePrinter
Dim PrintAdres As String

Range("A1").Select
PrintAdres = Selection.Value

strNetworkPrinter = GetFullNetworkPrinterName("\\hakw1-dc1\nie1-rhak-kle-01")
'strNetworkPrinter = GetFullNetworkPrinterName = PrintAdres

If Len(strNetworkPrinter) > 0 Then
Application.ActivePrinter = strNetworkPrinter

ActiveWindow.SelectedSheets.PrintOut Copies:=1

End If

Application.ActivePrinter = str

Sheets("blad2").Select
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 & " op 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
 
Welk resultaat geeft deze ?
Code:
strNetworkPrinter = GetFullNetworkPrinterName("\\" & Range("A1").Value)
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan