A Microsoft Office (Excel, Word) forum. OfficeFrustration

If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

Go Back   Home » OfficeFrustration forum » Microsoft Word » Mailmerge
Site Map Home Register Authors List Search Today's Posts Mark Forums Read  

Setting a print tray



 
 
Thread Tools Display Modes
  #11  
Old May 1st, 2008, 03:30 PM posted to microsoft.public.word.mailmerge.fields,microsoft.public.word.vba.general
Graham Mayor
external usenet poster
 
Posts: 18,297
Default Setting a print tray

Based on Jonathan's experiments in the parallel vba forum thread (which is
not cross-posted to mailmergefields) Using the tray ID numbers does indeed
work and you can therefore modify the original macro to employ DefaultTrayID
as follows. I have left the messageboxes in so that you can review the
assignments.

Private Sub Document_New()
Dim sCurrentPrinter As String
Dim sTray As String
sCurrentPrinter = Application.ActivePrinter
With Options
sTray = .DefaultTray
ActivePrinter = "\\OKKC405\IT_PS.PRINTERS"
.DefaultTrayID = 260 'check tray2 ID as previously discussed.
MsgBox ActivePrinter & vbCr & .DefaultTray
Application.PrintOut FileName:=""
ActivePrinter = sCurrentPrinter
.DefaultTray = sTray
MsgBox ActivePrinter & vbCr & .DefaultTray
End With
End Sub


--

Graham Mayor - Word MVP

My web site www.gmayor.com
Word MVP web site http://word.mvps.org


Graham Mayor wrote:
This is beginning to bug me to
I have posted a question in the vba forum (where I have also cross
posted this message) so we shall see how widespread the issue is. In
the meantime, I have come up with another workaround.

With the printer in question set as the active printer, record a macro
setting PageSetup to apply the trays there, instead of in Options.
This will give you the tray ID numbers for that printer. You can then
apply the pagesetup in the macro eg

Sub HPPrint()
Dim sPrinter As String
With Dialogs(wdDialogFilePrintSetup)
sPrinter = .Printer
.Printer = "HP LaserJet 4050 Series PCL"
.DoNotSetAsSysDefault = True
.Execute
With ActiveDocument.PageSetup
.FirstPageTray = 260
.OtherPagesTray = 260
End With
Dialogs(wdDialogFilePrint).Show
.Printer = sPrinter
.DoNotSetAsSysDefault = False
.Execute
End With
End Sub

This setting is actually retained in the document for when that
printer is available and shouldn't affect the default Options. What's
more to the point, it doesn't crash Word.

The Options are stored in the Word settings sub key of the data key
in the registry
HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\W ord\Data
this key setting is notoriously volatile in Word 2003. Others have
said that this is attributable to the actions of wayward add-ins, but
I have had the key fail to maintain settings when no add-ins are
present, so I am not convinced with the diagnosis. It *may* be worth
temporarily renaming the key to (say) oldsettings to see if it is any
happier with a fresh copy of the sub key which Word will create if
not present, but I am not confident that it will fix the problem.
(You can delete the new sub key and rename the old one back again) to
restore your settings if it doesn't improve things.


AJ wrote:
Thanks Mr. Mayor, I have been doing the backup and clearing out the
trash files. Since this has been doing this for a couple of days now,
I have become very proficient at backups... At least I can feel
better at the fact that it isn't that Word just hates me and is bound
and determined to drive me to the Psych Ward... I will look into the
other site you suggested and see what to do from here. If you are
able to figure anything out please let me know, this is going to bug
me for days...
Thanks,
AJ

"Graham Mayor" wrote:

PS - Given the crashes, you should also see
http://www.gmayor.com/what_to_do_when_word_crashes.htm

--

Graham Mayor - Word MVP

My web site www.gmayor.com
Word MVP web site http://word.mvps.org



Graham Mayor wrote:
This is all very odd? Testing here I too find that Word 2003
crashes if you change the default tray in vba with the example
used. It certainly didn't do that when I wrote the web page

One unsatisfactory workaround is to use the following code

Dim sPrinter As String
With Dialogs(wdDialogFilePrintSetup)
sPrinter = .Printer
.Printer = "\\OKKC405\IT_PS.PRINTERS"
.DoNotSetAsSysDefault = True
.Execute
Dialogs(wdDialogFilePrint).Show
.Printer = sPrinter
.DoNotSetAsSysDefault = False
.Execute
End With

which will at least pause while you change the tray manually.

A more in depth look at controlling printers by VBA has been
conducted by fellow MVP Jonathan West - see
http://pubs.logicalexpressions.com/P...cle.asp?ID=116


AJ wrote:
Also, I don't know if this makes any difference, but when I step
through the macro, when it gets to the "With Options .
defaulttray" line 1 of 2 things happens, either it goes through
it without the normal pause you get when it is running a code.
Like when it does the activeprinter line there is a pause while
it runs the code and switches printers, but on this line and the
other option line further in the code it either jumps right
through it without any pause Or at other times when it gets to
the option line the program freezes up and I get the "Word has
encountered a problem and must shut down". I hope this makes
since, basically it seems like it either skips over the "With
options" or if it tries to run it I get the Message about
encountering a problem. I don't know if it makes a difference
that I am using Word2003. "Graham Mayor" wrote:

Oops! By 'below' I meant in the revised macro

Private Sub Document_New()
Dim sCurrentPrinter As String
sCurrentPrinter = Application.ActivePrinter
ActivePrinter = "\\OKKC405\IT_PS.PRINTERS"
With Options
.DefaultTray = "Tray 2"
End With
MsgBox Options.DefaultTray
'Application.PrintOut FileName:=""
With Options
.DefaultTray = "Use printer settings"
End With
ActivePrinter = sCurrentPrinter
End Sub

--

Graham Mayor - Word MVP

My web site www.gmayor.com
Word MVP web site http://word.mvps.org



Graham Mayor wrote:
What does the Message Box (below) report?

If, as I suspect, it says Tray 2 - is there a Tray 2 associated
with this printer or is it called something else?

Try setting the tray assignment in the document's page setup
(with the required printer active).


AJ wrote:
I am trying to use a macro on my mail merge template(Word2003)
to set a specific print tray. I am calling the merge from
access2003 and then am printing out the new merged document
from a module in access. I am unsuccessful in trying to add a
macro I found (www.gmayor.com/fax_from_word.htm) to place on
my template so each document will print to a different tray. I
don't know if I am doing something wrong or am missing
something. I am able to run it from Word and it will switch the
printer but not switch the tray. Then when I call the whole
thing into Access it will switch printers but not print trays.I
have placed the code on the mail merge template itself in the
Document New, because to my limited knowledge this code is
suppose to carry over to the merged documents.Is that true? I
have the code below to view.Thank you ahead for any help.
Private Sub Document_New() Dim sCurrentPrinter As String
sCurrentPrinter = Application.ActivePrinter
ActivePrinter = "\\OKKC405\IT_PS.PRINTERS"
With Options
.DefaultTray = "Tray 2"
End With
Application.PrintOut FileName:=""
With Options
.DefaultTray = "Use printer settings"
End With
ActivePrinter = sCurrentPrinter
End Sub



  #12  
Old May 1st, 2008, 08:07 PM posted to microsoft.public.word.mailmerge.fields,microsoft.public.word.vba.general
aj
external usenet poster
 
Posts: 333
Default Setting a print tray

Mr. Mayor,

Thank you so much for all the help. I was able to accomplish this finally by
using your suggestion below, ie.. DefaultTrayID instead of DefaultTray. Very
strange that this was works fine and the other shuts down Word...Oh well that
is why we will never be out of jobs...Thanks again for all the help.
AJ

"Graham Mayor" wrote:

Based on Jonathan's experiments in the parallel vba forum thread (which is
not cross-posted to mailmergefields) Using the tray ID numbers does indeed
work and you can therefore modify the original macro to employ DefaultTrayID
as follows. I have left the messageboxes in so that you can review the
assignments.

Private Sub Document_New()
Dim sCurrentPrinter As String
Dim sTray As String
sCurrentPrinter = Application.ActivePrinter
With Options
sTray = .DefaultTray
ActivePrinter = "\\OKKC405\IT_PS.PRINTERS"
.DefaultTrayID = 260 'check tray2 ID as previously discussed.
MsgBox ActivePrinter & vbCr & .DefaultTray
Application.PrintOut FileName:=""
ActivePrinter = sCurrentPrinter
.DefaultTray = sTray
MsgBox ActivePrinter & vbCr & .DefaultTray
End With
End Sub


--

Graham Mayor - Word MVP

My web site www.gmayor.com
Word MVP web site http://word.mvps.org


Graham Mayor wrote:
This is beginning to bug me to
I have posted a question in the vba forum (where I have also cross
posted this message) so we shall see how widespread the issue is. In
the meantime, I have come up with another workaround.

With the printer in question set as the active printer, record a macro
setting PageSetup to apply the trays there, instead of in Options.
This will give you the tray ID numbers for that printer. You can then
apply the pagesetup in the macro eg

Sub HPPrint()
Dim sPrinter As String
With Dialogs(wdDialogFilePrintSetup)
sPrinter = .Printer
.Printer = "HP LaserJet 4050 Series PCL"
.DoNotSetAsSysDefault = True
.Execute
With ActiveDocument.PageSetup
.FirstPageTray = 260
.OtherPagesTray = 260
End With
Dialogs(wdDialogFilePrint).Show
.Printer = sPrinter
.DoNotSetAsSysDefault = False
.Execute
End With
End Sub

This setting is actually retained in the document for when that
printer is available and shouldn't affect the default Options. What's
more to the point, it doesn't crash Word.

The Options are stored in the Word settings sub key of the data key
in the registry
HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\W ord\Data
this key setting is notoriously volatile in Word 2003. Others have
said that this is attributable to the actions of wayward add-ins, but
I have had the key fail to maintain settings when no add-ins are
present, so I am not convinced with the diagnosis. It *may* be worth
temporarily renaming the key to (say) oldsettings to see if it is any
happier with a fresh copy of the sub key which Word will create if
not present, but I am not confident that it will fix the problem.
(You can delete the new sub key and rename the old one back again) to
restore your settings if it doesn't improve things.


AJ wrote:
Thanks Mr. Mayor, I have been doing the backup and clearing out the
trash files. Since this has been doing this for a couple of days now,
I have become very proficient at backups... At least I can feel
better at the fact that it isn't that Word just hates me and is bound
and determined to drive me to the Psych Ward... I will look into the
other site you suggested and see what to do from here. If you are
able to figure anything out please let me know, this is going to bug
me for days...
Thanks,
AJ

"Graham Mayor" wrote:

PS - Given the crashes, you should also see
http://www.gmayor.com/what_to_do_when_word_crashes.htm

--

Graham Mayor - Word MVP

My web site www.gmayor.com
Word MVP web site http://word.mvps.org



Graham Mayor wrote:
This is all very odd? Testing here I too find that Word 2003
crashes if you change the default tray in vba with the example
used. It certainly didn't do that when I wrote the web page

One unsatisfactory workaround is to use the following code

Dim sPrinter As String
With Dialogs(wdDialogFilePrintSetup)
sPrinter = .Printer
.Printer = "\\OKKC405\IT_PS.PRINTERS"
.DoNotSetAsSysDefault = True
.Execute
Dialogs(wdDialogFilePrint).Show
.Printer = sPrinter
.DoNotSetAsSysDefault = False
.Execute
End With

which will at least pause while you change the tray manually.

A more in depth look at controlling printers by VBA has been
conducted by fellow MVP Jonathan West - see
http://pubs.logicalexpressions.com/P...cle.asp?ID=116


AJ wrote:
Also, I don't know if this makes any difference, but when I step
through the macro, when it gets to the "With Options .
defaulttray" line 1 of 2 things happens, either it goes through
it without the normal pause you get when it is running a code.
Like when it does the activeprinter line there is a pause while
it runs the code and switches printers, but on this line and the
other option line further in the code it either jumps right
through it without any pause Or at other times when it gets to
the option line the program freezes up and I get the "Word has
encountered a problem and must shut down". I hope this makes
since, basically it seems like it either skips over the "With
options" or if it tries to run it I get the Message about
encountering a problem. I don't know if it makes a difference
that I am using Word2003. "Graham Mayor" wrote:

Oops! By 'below' I meant in the revised macro

Private Sub Document_New()
Dim sCurrentPrinter As String
sCurrentPrinter = Application.ActivePrinter
ActivePrinter = "\\OKKC405\IT_PS.PRINTERS"
With Options
.DefaultTray = "Tray 2"
End With
MsgBox Options.DefaultTray
'Application.PrintOut FileName:=""
With Options
.DefaultTray = "Use printer settings"
End With
ActivePrinter = sCurrentPrinter
End Sub

--

Graham Mayor - Word MVP

My web site www.gmayor.com
Word MVP web site http://word.mvps.org



Graham Mayor wrote:
What does the Message Box (below) report?

If, as I suspect, it says Tray 2 - is there a Tray 2 associated
with this printer or is it called something else?

Try setting the tray assignment in the document's page setup
(with the required printer active).


AJ wrote:
I am trying to use a macro on my mail merge template(Word2003)
to set a specific print tray. I am calling the merge from
access2003 and then am printing out the new merged document
from a module in access. I am unsuccessful in trying to add a
macro I found (www.gmayor.com/fax_from_word.htm) to place on
my template so each document will print to a different tray. I
don't know if I am doing something wrong or am missing
something. I am able to run it from Word and it will switch the
printer but not switch the tray. Then when I call the whole
thing into Access it will switch printers but not print trays.I
have placed the code on the mail merge template itself in the
Document New, because to my limited knowledge this code is
suppose to carry over to the merged documents.Is that true? I
have the code below to view.Thank you ahead for any help.
Private Sub Document_New() Dim sCurrentPrinter As String
sCurrentPrinter = Application.ActivePrinter
ActivePrinter = "\\OKKC405\IT_PS.PRINTERS"
With Options
.DefaultTray = "Tray 2"
End With
Application.PrintOut FileName:=""
With Options
.DefaultTray = "Use printer settings"
End With
ActivePrinter = sCurrentPrinter
End Sub




  #13  
Old May 2nd, 2008, 07:41 AM posted to microsoft.public.word.mailmerge.fields,microsoft.public.word.vba.general
Graham Mayor
external usenet poster
 
Posts: 18,297
Default Setting a print tray

I have now modified the tray selection routine on my web site

--

Graham Mayor - Word MVP

My web site www.gmayor.com
Word MVP web site http://word.mvps.org



AJ wrote:
Mr. Mayor,

Thank you so much for all the help. I was able to accomplish this
finally by using your suggestion below, ie.. DefaultTrayID instead of
DefaultTray. Very strange that this was works fine and the other
shuts down Word...Oh well that is why we will never be out of
jobs...Thanks again for all the help.
AJ

"Graham Mayor" wrote:

Based on Jonathan's experiments in the parallel vba forum thread
(which is not cross-posted to mailmergefields) Using the tray ID
numbers does indeed work and you can therefore modify the original
macro to employ DefaultTrayID as follows. I have left the
messageboxes in so that you can review the assignments.

Private Sub Document_New()
Dim sCurrentPrinter As String
Dim sTray As String
sCurrentPrinter = Application.ActivePrinter
With Options
sTray = .DefaultTray
ActivePrinter = "\\OKKC405\IT_PS.PRINTERS"
.DefaultTrayID = 260 'check tray2 ID as previously discussed.
MsgBox ActivePrinter & vbCr & .DefaultTray
Application.PrintOut FileName:=""
ActivePrinter = sCurrentPrinter
.DefaultTray = sTray
MsgBox ActivePrinter & vbCr & .DefaultTray
End With
End Sub


--

Graham Mayor - Word MVP

My web site www.gmayor.com
Word MVP web site http://word.mvps.org


Graham Mayor wrote:
This is beginning to bug me to
I have posted a question in the vba forum (where I have also cross
posted this message) so we shall see how widespread the issue is. In
the meantime, I have come up with another workaround.

With the printer in question set as the active printer, record a
macro setting PageSetup to apply the trays there, instead of in
Options. This will give you the tray ID numbers for that printer.
You can then apply the pagesetup in the macro eg

Sub HPPrint()
Dim sPrinter As String
With Dialogs(wdDialogFilePrintSetup)
sPrinter = .Printer
.Printer = "HP LaserJet 4050 Series PCL"
.DoNotSetAsSysDefault = True
.Execute
With ActiveDocument.PageSetup
.FirstPageTray = 260
.OtherPagesTray = 260
End With
Dialogs(wdDialogFilePrint).Show
.Printer = sPrinter
.DoNotSetAsSysDefault = False
.Execute
End With
End Sub

This setting is actually retained in the document for when that
printer is available and shouldn't affect the default Options.
What's more to the point, it doesn't crash Word.

The Options are stored in the Word settings sub key of the data key
in the registry
HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\W ord\Data
this key setting is notoriously volatile in Word 2003. Others have
said that this is attributable to the actions of wayward add-ins,
but I have had the key fail to maintain settings when no add-ins are
present, so I am not convinced with the diagnosis. It *may* be worth
temporarily renaming the key to (say) oldsettings to see if it is
any happier with a fresh copy of the sub key which Word will create
if not present, but I am not confident that it will fix the problem.
(You can delete the new sub key and rename the old one back again)
to restore your settings if it doesn't improve things.


AJ wrote:
Thanks Mr. Mayor, I have been doing the backup and clearing out the
trash files. Since this has been doing this for a couple of days
now, I have become very proficient at backups... At least I can
feel better at the fact that it isn't that Word just hates me and
is bound and determined to drive me to the Psych Ward... I will
look into the other site you suggested and see what to do from
here. If you are able to figure anything out please let me know,
this is going to bug me for days...
Thanks,
AJ

"Graham Mayor" wrote:

PS - Given the crashes, you should also see
http://www.gmayor.com/what_to_do_when_word_crashes.htm

--

Graham Mayor - Word MVP

My web site www.gmayor.com
Word MVP web site http://word.mvps.org



Graham Mayor wrote:
This is all very odd? Testing here I too find that Word 2003
crashes if you change the default tray in vba with the example
used. It certainly didn't do that when I wrote the web page

One unsatisfactory workaround is to use the following code

Dim sPrinter As String
With Dialogs(wdDialogFilePrintSetup)
sPrinter = .Printer
.Printer = "\\OKKC405\IT_PS.PRINTERS"
.DoNotSetAsSysDefault = True
.Execute
Dialogs(wdDialogFilePrint).Show
.Printer = sPrinter
.DoNotSetAsSysDefault = False
.Execute
End With

which will at least pause while you change the tray manually.

A more in depth look at controlling printers by VBA has been
conducted by fellow MVP Jonathan West - see
http://pubs.logicalexpressions.com/P...cle.asp?ID=116


AJ wrote:
Also, I don't know if this makes any difference, but when I step
through the macro, when it gets to the "With Options .
defaulttray" line 1 of 2 things happens, either it goes through
it without the normal pause you get when it is running a code.
Like when it does the activeprinter line there is a pause while
it runs the code and switches printers, but on this line and the
other option line further in the code it either jumps right
through it without any pause Or at other times when it gets to
the option line the program freezes up and I get the "Word has
encountered a problem and must shut down". I hope this makes
since, basically it seems like it either skips over the "With
options" or if it tries to run it I get the Message about
encountering a problem. I don't know if it makes a difference
that I am using Word2003. "Graham Mayor" wrote:

Oops! By 'below' I meant in the revised macro

Private Sub Document_New()
Dim sCurrentPrinter As String
sCurrentPrinter = Application.ActivePrinter
ActivePrinter = "\\OKKC405\IT_PS.PRINTERS"
With Options
.DefaultTray = "Tray 2"
End With
MsgBox Options.DefaultTray
'Application.PrintOut FileName:=""
With Options
.DefaultTray = "Use printer settings"
End With
ActivePrinter = sCurrentPrinter
End Sub

--

Graham Mayor - Word MVP

My web site www.gmayor.com
Word MVP web site http://word.mvps.org



Graham Mayor wrote:
What does the Message Box (below) report?

If, as I suspect, it says Tray 2 - is there a Tray 2
associated with this printer or is it called something else?

Try setting the tray assignment in the document's page setup
(with the required printer active).


AJ wrote:
I am trying to use a macro on my mail merge
template(Word2003) to set a specific print tray. I am
calling the merge from access2003 and then am printing out
the new merged document from a module in access. I am
unsuccessful in trying to add a macro I found
(www.gmayor.com/fax_from_word.htm) to place on my template
so each document will print to a different tray. I don't
know if I am doing something wrong or am missing something.
I am able to run it from Word and it will switch the printer
but not switch the tray. Then when I call the whole thing
into Access it will switch printers but not print trays.I
have placed the code on the mail merge template itself in
the Document New, because to my limited knowledge this code
is suppose to carry over to the merged documents.Is that
true? I have the code below to view.Thank you ahead for any
help. Private Sub Document_New() Dim sCurrentPrinter As
String sCurrentPrinter = Application.ActivePrinter
ActivePrinter = "\\OKKC405\IT_PS.PRINTERS"
With Options
.DefaultTray = "Tray 2"
End With
Application.PrintOut FileName:=""
With Options
.DefaultTray = "Use printer settings"
End With
ActivePrinter = sCurrentPrinter
End Sub



 




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Forum Jump


All times are GMT +1. The time now is 10:18 PM.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 OfficeFrustration.
The comments are property of their posters.