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

Print macro werkt maar op 1 pc i.p.v. 2

Status
Niet open voor verdere reacties.

corvdh

Gebruiker
Lid geworden
29 aug 2010
Berichten
128
Ik heb op onze afdeling 2 computers staan, op deze computers is een label printer als standaard ingesteld.
Nu heb ik een macro gemaakt en een knop ingevoegd die er voor zorgt dat een Excel 2003 bestand (test.xls) altijd word geprint met een A4 printer.
Dan hoeft men niet steeds de printer instelling te veranderen.
Alleen op computer1 werkt deze macro wel en op de ander computer niet, deze geeft dan een runtime error.
Code:
Application.ActivePrinter = _
        "\\nl-print1\Kyocera 3140 Afdeling1 on Ne02:"
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
        "\\nl-print1\Kyocera 3140 Afdeling1 on Ne02:", Collate:=True
Als ik Ne02 verander naar Ne03 doet de macro het niet meer op computer1 maar weer wel op de andere.

Kan deze macro aangepast worden zodat hij werkt op beide computers?

Ik weet dat dat nummer met de volgorde van installeren van de printer te maken heeft, maar ik ben op mijn werk niet gemachtigd om iets te installeren dus gebruik ik liever een macro.
 
En op deze manier?

Code:
Dim selecteerprinter As String
selecteerprinter = Application.ActivePrinter
 ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
        selecteerprinter, Collate:=True


edit: Je standaardprinter was een labelprinter, dan gaat bovenstaande niet op.
 
Laatst bewerkt:
maar ik ben op mijn werk niet gemachtigd om iets te installeren dus gebruik ik liever een macro

Hebben ze waarschijnlijk niet voor niets gedaan. Dus als het van belang is voor de afdeling dan zal de systeembeheerder dit best wel oplossen.
 
Probeer eens met volgend functie. Plaats deze in een standaardmodule.
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 = "\\nl-print1\" & 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 = "\\nl-print1\" & myprinter & " Op Ne" & Format(X, "00") & ":"
errorExit:
  Exit Function
PrtError:
  'no printer found
  NetworkPrinter = ""
  Resume errorExit
End Function

En in je printmacro
Code:
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
        NetworkPrinter("Kyocera 3140 Afdeling1"), Collate:=True
 
Ik heb de code van Warme bakkertje geprobeerd maar de Excelsheet word dan toch met de label printer uitgeprint.

Kan ik niet iets proberen als:

Code:
On Error Resume Next
Application.ActivePrinter = _
        "\\nl-print1\Kyocera 3140 Afdeling1 on Ne02:"
On Error Resume Next
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
        "\\nl-print1\Kyocera 3140 Afdeling1 on Ne02:", Collate:=True

On Error Resume Next
Application.ActivePrinter = _
        "\\nl-print1\Kyocera 3140 Afdeling1 on Ne03:"
On Error Resume Next
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
        "\\nl-print1\Kyocera 3140 Afdeling1 on Ne03:", Collate:=True
Mocht het dan fout gaan door die Ne02 dat die dan verder gaat met Ne03, en er dan dus geen runtime error melding verschijnd.
 
Misschien.
Code:
dim selecteerprinter as string
On Error Resume Next
Application.ActivePrinter = _
        "\\nl-print1\Kyocera 3140 Afdeling1 on Ne02:"
Application.ActivePrinter = _
        "\\nl-print1\Kyocera 3140 Afdeling1 on Ne03:"
on error goto 0
selecteerprinter = application.activeprinter
 ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
        selecteerprinter, Collate:=True
 
Laatst bewerkt:
Ik kan deze macro alleen testen op mijn werk, dus ga ik dit morgen even proberen.
 
Ik heb de Macro code van HSV getest en deze werkt uitstekend.

Bedankt weer voor de hulp.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan