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

Script voor printen vanaf verschillende PC's op 1 vaste printer binnen netwerk

Status
Niet open voor verdere reacties.

Manke

Gebruiker
Lid geworden
15 dec 2006
Berichten
115
Hallo,

Ik heb o.a. 2 VBA scriptjes in mn Excelbestand staan.

De eerste zorgt ervoor dat er een bepaalde printer, hangende in het zelfde netwerk, wordt aangeroepen. Mn scriptje (“Afdrukken”) luidt als volgt:

Sub afdrukken()
Application.ActivePrinter = "\\sv01\Oce VarioPrint 1055 PCL op Ne03:"
ExecuteExcel4Macro _
"PRINT(1,,,1,,,,,,,,2,""\\sv01\Oce VarioPrint 1055 PCL op Ne03:"",,TRUE,,FALSE)"
End Sub


Daarnaast heb ik een scriptje gemaakt die er voor zorgt dat (na aan een aantal voorwaarden te hebben voldaan) het betreffende blad print op de printer (geactiveerd door scriptje 1)

Hieronder staat een deel van mn scriptje afgedrukt:

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
If CheckBox1.Value Then
vel = "Voorblad"
result = MsgBox("U staat op het punt - " + vel + "- af te drukken. Doorgaan?", vbYesNo, "Keuze")
If result = vbYes Then
Sheets("vel2.0").Select
afdrukken
etc.etc.


Ik moet zeggen... wanneer het script gestart wordt vanaf mn eigen PC hangend in een netwerk.. dan verloopt alles prima.
Gebruikt iemand anders hetzelfde Excelbestandje van een pc ook “hangend” in hetzelfde netwerkje.. dan krijgt hij/ zij de volgende foutmelding:

“Fout 1004 tijdens uitvoering Methode Activeprinter van Object.Application is mislukt”

Ga ik naar de foutopsporing, dan zie ik dat een en ander vastloopt in :

Application.ActivePrinter = "\\sv01\Oce VarioPrint 1055 PCL op Ne03:"
Kan iemand mij verder helpen. Ik zou zo graag, ongeacht van welke PC in het netwerk het bestand gebruikt wordt, de output uitgeprint hebben op die specifieke printer.

Ik hoop dat iemand me kan/ wil helpen

Groet,
Manke
 
Dat lijkt dubbelop: de actieve printer wijzigen en dan een afdrukopdracht naar een specifiek printer sturen.
Gebruik
of: activeprinter, printout
of: executeExcel4 macro
Dus:
Code:
Sub anders()
  c0=Application.ActivePrinter 
  Application.ActivePrinter = "\\sv01\Oce VarioPrint 1055 PCL op Ne03:"
  Sheets("vel2.0").Printout
  Application.ActivePrinter=c0
End Sub
of
Code:
Sub anders2()
  ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,""\\sv01\Oce VarioPrint 1055 PCL op Ne03:"",,TRUE,,FALSE)"
End Sub
 
Hou SNB,

Ik heb jou (onderstaand) scriptje gebruikt:
Sub anders2()
ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,""\\sv01\Oce VarioPrint 1055 PCL op Ne03:"",,TRUE,,FALSE)"
End Sub

Maar helaas er wordt (printende vanaf een andere pc in het netwerk) gebruik gemaakt van de op die PC aangegeven standaard printer en niet op de door mij gewenste pinter..

Tis m dus nog niet helemaal helaas

Groet en alvast bedankt voor het meedenken he!

Manke
 
Staat bij alle PC's de printer op dezelfde poort ? Anders zal je gebruik moeten maken van een dynamische printerpoort in je macro.
 
"\\sv01\Oce VarioPrint 1055 PCL op Ne03:"

Klopt deze link wel? Ik vind het een aparte naam voor een printershare.
Op een werkstation waar je script niet op werkt, zou je via start->uitvoeren deze regel in kunnen typen: "\\sv01\Oce VarioPrint 1055 PCL op Ne03:"

Als je dan de printer in beeld krijgt, is de link goed. Ik heb het idee dat " op Ne03:" niet in de link zou moeten staan.
 
Hoi!

Even over ""\\sv01\Oce VarioPrint 1055 PCL op Ne03:"". Ik heb "op Ne03" weggehaald, maar helaas geen verbetering. Er wordt nog steeds gebruik gemaakt de op de PC ingestelde voorkeurs printer en niet van de door mij aangewezen printer.

Ik heb even 2 PC bekeken. Maar ga ik naar <Start> <Printers en faxapparaten> en selecteer ik de door mij gewenste printer dan verschijnt bij beide PC identieke gegevens, namelijk:

IP_xxx.xxxx.x.xx Standard TCP/IP Port Oce VarioPrint 1055 PCL

(Heb even voor de veiligheid (weet niet hoe gevoelig het is om een IP adres in een forum te zetten) het IP veranderd in x-en)

Help??
 
Voor een overzicht van al je printers draai deze macro:


Code:
Sub printers()
  With CreateObject("Wscript.network").EnumPrinterConnections
    For j = 0 To .Count - 1 Step 2
      Cells(j \ 2 + 1, 1) = .Item(j + 1)
      Cells(j \ 2 + 1, 2) = .Item(j)
    Next
  End With
End Sub
 
m.i. draaien ze niet allemaal op Ne03. Stel op een andere Pc de gewenste printer als standaard in en draai dan de macro in het bijgevoegde bestandje. Je krijgt dan een MsgBox met de naam v/d actieve printer, de gebruikte driver(hier niet belangrijk), en de poort op dewelke de printer aangesloten is. Zijn ze niet allemaal gelijk dan zal je in je macro moeten verwerken dat de gewenste printer met de 'juiste' poort geselecteerd wordt als standaard (Dynamische printerpoort)
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan