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

printprobleem macro excel

Status
Niet open voor verdere reacties.

keizerr

Nieuwe gebruiker
Lid geworden
22 okt 2007
Berichten
2
Het volgende.
Ik heb een macro opgenomen om uit excel te printen op een stickerpinter die lokaal aan een pc hangt. Daarna moet de huidige printer weer geselecteerd worden. Dit is een netwerkprinter en aangezien er meerdere gebruikers zijn en iedereen een eigen netwerklogin heeft. Heeft iedereen deze netwerkprinter op een andere poort staan
( bijvoorbeeld Ne02 of Ne04). Kun je de macro ook alleen naar de printernaam laten kijken en niet naar de poort. Want nu gaat het alleen onder mijn login goed en bij de rest niet.
Macro is als volgt:

Code:
Code:
Sub Stickerprinten()
'
' Stickerprinten Macro
' De macro is opgenomen op 28-9-2007 door anoniem.
'

'
    Application.ActivePrinter = "Eltron TLP3642 op LPT1:"
    Selection.PrintOut Copies:=1, ActivePrinter:="Eltron TLP3642 op LPT1:", _
        Collate:=True
   Application.ActivePrinter = "\\dv00....\DV00F56N op Ne01:"
   
  
   
    
    
    
End Sub
 
Laatst bewerkt door een moderator:
lees eerst de active printer uit en zet die daarna terug

Code:
Sub Stickerprinten()
'
' Stickerprinten Macro
' De macro is opgenomen op 28-9-2007 door anoniem.
'
[B]dim printer as String

'huidige printer vastleggen in variabele
printer = Application.ActivePrinter[/B]

'
Application.ActivePrinter = "Eltron TLP3642 op LPT1:"
Selection.PrintOut Copies:=1, ActivePrinter:="Eltron TLP3642 op LPT1:", _
Collate:=True

[B]'printer weer terugzetten
Application.ActivePrinter = printer[/B]

End Sub
 
Met onderstaande functie kun je de ne-naam opzoeken, mits de rest van de naam overeenkomt. Dit is meestal wel het geval als een netwerkprinter aan een pc hangt.

Code:
Function NetworkPrinter(ByVal myprinter As String)
  On Error Resume Next
  Dim X As Integer
  X = 0
TryAgain:
  On Error Resume Next
  'Printer
  Application.ActivePrinter = "\\servernaam\" & myprinter & " Op Ne" & Format(X, "00") & ":"
  If Err.Number <> 0 And X < 100 Then
    X = X + 1
    GoTo TryAgain
  ElseIf Err.Number <> 0 And X > 99 Then
    GoTo PrtError
  End If
  On Error GoTo 0
  NetworkPrinter = "\\servernaam\" & myprinter & " Op Ne" & Format(X, "00") & ":"
errorExit:
  Exit Function
PrtError:
  'no printer found
  NetworkPrinter = ""
  Resume errorExit
End Function

Ik heb het niet zelf verzonnen, weet niet meer waar ik het vandaan heb, maar het is wel de oplossing.

m.vr.gr.
Marcel
 
topic stamt uit 2007, derhalve niet meer actueel en op slot
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan