Udskriv til 2 netværksprintere og reset default pr
Udskrevet fra: Dansk Regneark Forum
Kategori: Hjælp til regneark.
Forum navn: Makro og VBA
Forum beskrivelse: Hjælp til Makroer og VBA-programmering
Web-adresse: https://forum.excel-regneark.dk/forum_posts.asp?TID=719
Udskrevet den: 20.Apr.2025 kl. 16:38
Emne: Udskriv til 2 netværksprintere og reset default pr
Besked fra: NHKaspersen
Emne: Udskriv til 2 netværksprintere og reset default pr
Posteringsdato: 21.Mar.2012 kl. 20:10
Jeg har en liste med afdelinger i kolonne A
Et tilhørende nummer i kolonne B
Netværksstien til afdelingens printer i kolonne C
A 10 file://dkcp100/dka50" rel="nofollow -
B 11 file://dkcp100/dkb50" rel="nofollow -
Osv
X file://%5C%5Cdkcp200%5Cdkx50" rel="nofollow -
Ud fra en rulleliste vælger jeg en afdeling - A
Valget af A generer via Lopslag et 10 tal i celle aa1
Hvordan laver jeg en macro som printer ud til den valgte
afdeling og Afdeling X
Og derefter reset default printer.
|
Svar:
Besked fra: Kurt Kubik
Posteringsdato: 21.Mar.2012 kl. 20:18
Måske kan dette bruges: http://www.vbforums.com/showthread.php?t=485542
|
Besked fra: NHKaspersen
Posteringsdato: 21.Mar.2012 kl. 20:27
Det ser spændende ud - prøve det imorgen når jeg er på netværketPå forhånd tak 
|
Besked fra: NHKaspersen
Posteringsdato: 22.Mar.2012 kl. 15:21
Så har jeg fundet en løsning der fungerer
SLPR = Range("aa1").Value
If SLPR = "10" Then
Application.ActivePrinter = "\\dkcp100\dka50 på Ne01:"
ExecuteExcel4Macro _
"PRINT(1,,,1,,,,,,,,2,""\\dkcp100\dka50 på Ne01:"",,TRUE,,FALSE)"
End If
If SLPR = "11" Then
Application.ActivePrinter = "\\dkcp100\dkb50 på Ne30:"
ExecuteExcel4Macro _
"PRINT(1,,,1,,,,,,,,2,""\\ dkcp100\dkb50 på Ne30:"",,TRUE,,FALSE)"
End If
Application.ActivePrinter = "\\dkcp200\dkx50 på Ne22:"
ExecuteExcel4Macro _
"PRINT(1,,,1,,,,,,,,2,""\\ dkcp200\dkx50 på Ne22:"",,TRUE,,FALSE)"
Range("A3").Select
End Sub
Mangler lige default printer
Evt. startende med
DefPrinter = ActivePrinter
og slutte med
ActivePrinter = DefPrinter End Sub
|
Besked fra: NHKaspersen
Posteringsdato: 27.Mar.2012 kl. 20:21
Ovenstående virkede desværre ikke, da Excel arket ligger på en server og forskellige computerer skal bruge det. Ændre Ne nummeret sig. Med denne løsning virker:
Dim
Message, Title, Default, MyValue
DefPrinter
= ActivePrinter
SLPR =
Range("aa1").Value
If SLPR =
"10" Then
On Error
Resume Next
For Counter
= 99 To 0 Step -1
Application.ActivePrinter
= "\\\\dkcp100\dka50 på Ne" & Format(Counter,
"00") & ":"
Next
ExecuteExcel4Macro
_
"PRINT(1,,,1,,,,,,,,2,""
\\\\dkcp100\dka50 på Ne " & Format(Counter,
"00") & ":"",,TRUE,,FALSE)"
End If
If SLPR = "11" Then
On Error
Resume Next
For Counter
= 99 To 0 Step -1
Application.ActivePrinter
= "\\\\dkcp100\dkb50 på Ne" & Format(Counter,
"00") & ":"
Next
ExecuteExcel4Macro
_
"PRINT(1,,,1,,,,,,,,2,""
\\\\dkcp100\dkb50 på Ne " & Format(Counter,
"00") & ":"",,TRUE,,FALSE)"
End If
On Error
Resume Next
For Counter
= 99 To 0 Step -1
Application.ActivePrinter
= "\\\\dkcp200\dkx50 på Ne" & Format(Counter,
"00") & ":"
Next
ExecuteExcel4Macro _
"PRINT(1,,,1,,,,,,,,2,""
\\\\dkcp200\dkx50 på Ne " & Format(Counter,
"00") & ":"",,TRUE,,FALSE)"
DefPrinter = ActivePrinter
Range("A3").Select
End Sub
|
|