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

Lade kiezen in VBA

  • Onderwerp starter Onderwerp starter Imod
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Imod

Gebruiker
Lid geworden
13 nov 2003
Berichten
481
Ik print het actieve excelblad met een andere printer dan de standaard ingestelde met een macro:

Sub print_blad()
'
' print_blad Macro
Application.ActivePrinter = "RICOH Aficio 1032 PCL 6 op Ne03:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"RICOH Aficio 1032 PCL 6 op Ne03:", Collate:=True
End Sub

Dit werkt goed - nu print hij standaard met lade 1 - ik wil papier uit lade 4 (met printhoofd)
Wat moet ik aan de macro toevoegen of wil dit niet lukken?
 
Imod,

Start de macrorecorder, en doe precies de handelingen die je zou doen om
met de betreffende lade te printen.
Als je File-Print kiest, staat daar zeer waarschijnlijk ergens een knop properties (eigenschappen) en op een van de tabbladen (tabblad paper??) die je dan ziet zal zoiets als "Paper Tray" (papier lade) of "source is" staan.
Kies hier de juiste printerlade en klik enkele keren op Ok
Stop de macro recorder.

Dit is allemaal afhankelijk van welke printer je hebt.



Koosl
 
Dit heb ik gedaan maar juist de keuze lade neemt de macrorecorder niet op!!
 
Imod,

Je hebt gelijk. In Excel lukt het blijkbaar niet.
Ik gebruikt op mijn werk een macro om in Word te switchen van la. Dit werkt goed, alleen het duurt nogal lang (30 sec)voordat hij echt begint met printen. Maar als ik er nu over nadenk hoe ik dat toen gedaan heb, ik weet wel dat ik eerder de instelling een naam had gegeven zodat ik die toen sneller kon kiezen. Later heb ik daar een macro voor gemaakt.

Misschien kun je dit ook proberen, dus eerst de instelingen op het print-eigenschappen tabblad wijzigen in hoe je het wilt hebben. En deze instellingen een naam geven en opslaan.
Daarna een macro opnemen, print in het File menu kiezen en de naam kiezen zodat de juiste la gekozen wordt.

Ik weet niet zeker of het dan wel lukt, maar in Word lukt het bij mij wel.

Ik zal het de op mijn werk wel eens proberen ofdat ik zoiets voor elkaar krijg met Excel.


Koosl
 
Met een naam leest de macro de naam ook niet in - hij ziet hem niet.
 
Het is zeker niet de mooiste oplossing, maar 1 die werkt is door gebruik te maken van het commando 'sendkeys. Hiermee kun je dan je printer instellen.
 
Hoe werkt dit, wat moet in bovenstaande code bijvoegen zodat lade 4 gekozen wordt??
 
In je macro iets van:

Code:
SendKeys "^p %E {DOWN}{PGUP}{DOWN}{DOWN}~~"
Bij mij stelt dit de printer in op het 3e veld in je lade keuze veld.

Deze regel 'stuurt' eerst ctrl+p naar excel, welke combinatie je print venster opent.
Daarna ALT+E waarmee je eigenschappen opent.
Het tabblad waar je nu uitkomt is afhankelijk van de laatste keer dat je in dit venster bent geweest, dit is dus een probleem want je weet niet van te voren in welk tabblad de gebruiker stond maar als je er vanuit gaat dat dit het Tabblad papier is ga je met {DOWN} =pijltje naar beneden de ladekeuzelijst in. Met pageup kom je op het eerste item, dan 2 maal down.

Afsluiten met enter (~) enige malen.

Hoe deze toetscombinatie bij jouw printer moet zijn, moet je zelf uitzoeken, dat kan ik niet zien. let op, dit commando werkt niet in de stap modus in je macro.
 
Hoe selecteer je met sendkeys het print bestand naar de onderste regel ( *.sav)

Ik heb nu een printbestandje gemaakt en kom tot het scherm als bijlage
 

Bijlagen

  • print.jpg
    print.jpg
    14,8 KB · Weergaven: 212
Na lang testen is het me toch gelukt - misschien iets voor anderen met Sendkeys:

Sub print_lade4()
' print_lade4 Macro
Application.ActivePrinter = "RICOH Aficio 1032 PCL 6 op Ne03:"
SendKeys "^p %E {tab 6}{2}{del} ^{tab}{tab 6}{DOWN 4}~~"
End Sub

Een knop gemaakt op het excelblad hieraan de macro gehangen "print_lade4"
printer keuze => Application.ActivePrinter = "RICOH Aficio 1032 PCL 6 op Ne03:"
^p => open print venster
%E => openvenster eigenschappen
{tab 6} 6x tab naar juiste knop
{2} aantal bladen invullen
{del} weghalen cijfer dat er al stond
^{tab} keuze ander tabblad
{tab 6} 6x tab naar juiste knop voor lade
{DOWN 4} is keuze lade met pijl
~~ 2x venster Enter

Bij ons werkt het prima met meerdere computers op het netwerk.
Ik heb de macro in een verborgen bestand gezet en als je de macro activeerd dan vraag hij dit verborgen bestand te openen (ivm het netwerk zodat meerdere comp erbij kunnen)
 
Thanks imod,
dit is zeker een mooi krijgertje, en het is niet eens December. Whohohoho.

Groet,
Ferenc
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan