Avatar billede jonasboege Praktikant
11. maj 2009 - 10:27 Der er 3 kommentarer og
1 løsning

Application.ActivePrinter

Hej.

Hjælp mig :-)
Jeg arbejder på en terminalserver - og er ved at lave et program, der skal slutte med at udprinte nogle sider på forskellige printere rundt omkring på forskellige printere i København.

Mit problem er blot, at de forskellige brugere på serveren også gerne skulle kunnne benytte programmet - men vi har jo forskellige printere installeret. Og det ser ud som om at x'et i "Ne0x" antyder hvor på listen printeren er for hver bruger. Og dette er jo meget forskelligt fra bruger til bruger.

Hvordan kommer jeg udenom dette problem?
Jeg vil også meget gerne have, at hvis printeren ikke er installeret, at programmet så også gør det...

Udpluk af koden:
dCenter(0)=1234
dCenter(1)=1235
dCenter(2)=1236

dPrinter(0) = "\\srprna503.firmadk.net\PRINT10028 på Ne02:"
dPrinter(1) = "\\srprna503.firmadk.net\PRINT12986 på Ne04:"
dPrinter(2) = "\\srprna504.firmadk.net\PRINT12600 på Ne05:"

For y = 1 To 3

  ActiveSheet.PivotTables(1).PivotFields("Center").CurrentPage = dCenter(y - 1)
  ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= dCenterPrinter(y - 1), Collate:=True

Next
Avatar billede jonasboege Praktikant
15. maj 2009 - 11:27 #1
Det skal også lige siges, at mine printerplaceringer også skifter en gang i mellem, så det er bare så hamrende irriterende :-(

HJÆLP MIG...
Avatar billede jonasboege Praktikant
25. maj 2009 - 14:45 #2
Er der nogle, der ved, om det overhovedet kan lade sig gøre?
Avatar billede jonasboege Praktikant
05. maj 2011 - 11:56 #3
Æv - jeg har ikke fået svar på denne - og jeg har heller ikke selv fundet ud af det :-(
Avatar billede jonasboege Praktikant
17. august 2012 - 14:11 #4
Men - nu har jeg lige mødt en kollega, der vist nok har fundet en løsning:

'the following code is from http://www.erlandsendata.no/english/ind ... ngeprinter
Function GetFullNetworkPrinterName(strNetworkPrinterName As String) As String
' returns the full network printer name
' returns an empty string if the printer is not found
' e.g. GetFullNetworkPrinterName("HP LaserJet 8100 Series PCL")
' might return "HP LaserJet 8100 Series PCL on Ne04:"
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
' the network printer was found
GetFullNetworkPrinterName = strTempPrinterName
i = 100 ' makes the loop end
End If
i = i + 1
Loop
' remove the line below if you want the function to change the active printer
'Application.ActivePrinter = strCurrentPrinterName ' change back to the original printer
End Function
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester