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 » New Users
Site Map Home Register Authors List Search Today's Posts Mark Forums Read  

help with macros



 
 
Thread Tools Display Modes
  #21  
Old June 1st, 2007, 06:06 AM posted to microsoft.public.word.newusers,microsoft.public.word.vba.general
Graham Mayor
external usenet poster
 
Posts: 18,297
Default help with macros

You are welcome

--

Graham Mayor - Word MVP

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


vandy wrote:
Thanks for all your help on the code. I have a lot to learn. This
forum has been extremely helpful and you have been very patient and
supportive.

"Graham Mayor" wrote:

I cannot reproduce the problem in Word 2003. I have cross posted to
the vba forum to see if anyone has any ideas.
The command is supposed to re-call the form document so that it can
be protected again after the labels have been created.
--

Graham Mayor - Word MVP

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


vandy wrote:
Hi Graham,

I separated the printing process and tested it . It works.

When i run the getcontent macro seperately i am getting a run time
error


Run-time error '5941' The requested member of the collection does
not exist.

When i press debug. it points out to the command

windows(sName).Activate . Once i stop the degugger the new document
with the labels pops up and i can print the labels i need. How to
get over this problem now.

thanks for your patience

"Graham Mayor" wrote:

Separate the printing process from the label creation process. This
will allow you to edit the label document before you print it. If
your recorded printing macro works use that instead - but don't
forget to add in the code to return to the previous state.

Sub GetContent()
Dim f1, f2, f3, f4, f5, f6, f7, sLayout As String
Dim strLabel As String
Dim sName As String
Dim bProtected As Boolean

'Unprotect the file
If ActiveDocument.ProtectionType wdNoProtection Then
bProtected = True
ActiveDocument.Unprotect Password:=""
End If
'get the filename of the form document
sName = ActiveDocument.FullName
'Get the field content
f1 = ActiveDocument.FormFields("Text1").Result
f2 = ActiveDocument.FormFields("Text2").Result
f3 = ActiveDocument.FormFields("Text3").Result
f4 = ActiveDocument.FormFields("Text4").Result
f5 = ActiveDocument.FormFields("Text5").Result
f6 = ActiveDocument.FormFields("Text6").Result
f7 = ActiveDocument.FormFields("Text7").Result
'assemble the content with associated text
sLayout = "PRODUCT DESCRIPTION " & f1 & " COMPONENT " & f2 _
& vbCr & "MPI No " & f3 & " DRAWING# " & f4 _
& " REV NO " & f5 & " ASSEMBLY DWG " & f6 _
& vbCr & "TOT QTY " & f7
'Pick the label type
strLabel = InputBox("Label stock number?", "Labels", 5263)
'Create the label
Application.MailingLabel.CreateNewDocument Name:=strLabel,
Address:=sLayout Windows(sName).Activate

'Reprotect the form document.
If bProtected = True Then
ActiveDocument.Protect _
Type:=wdAllowOnlyFormFields, NoReset:=True, Password:=""
End If
End Sub

Sub PrintTheLabels()
'Print the labels
sTray = Options.DefaultTray
Options.DefaultTray = "Drawer 1"
Dialogs(wdDialogFilePrint).Show
Options.DefaultTray = sTray
Dim sTray As String
End Sub


--

Graham Mayor - Word MVP

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

vandy wrote:
Hi Graham,

Thanks a ton for your code. I have been trying different
combinations all day to get around the printer problem. As
suggested I ran the printtray code seperately and it is printing
from "Drawer 1" without error. when i combine it with the
getcontent code the printer stalls and i have to physically undo
the stackbypass option and select LTR on the printer. The funny
part is when i go to select option button on the printer pop up i
see default tray as drawer 1.

Now the label sheet appears on a new document I am unable to
delete labels that i dont require. Since the same label is listed
for the full page. I am forced to give the print command to
complete the macro. Any suggestions. Thanks for all your help.



"Graham Mayor" wrote:

Oops - triplicate - I don't know how that happened

--

Graham Mayor - Word MVP

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


Graham Mayor wrote:
You have to walk before you can run

First clean up the mess from the crash -
http://www.gmayor.com/what_to_do_when_word_crashes.htm

You are going wrong by using the wrong bit of macro code. The
one you have used intercepts the envelope/label dialog. The
posted macro has already used that and the label has been
created. All you need is to set the printer and tray and pop up
the print dialog.

Your modifications seem to suggest that the same printer is used
throughout. That being the case there is no need to change it.
You can change the Tray (are you sure that "Drawer 1" is the
correct command? Record the action in a temporary macro if you
are not sure) and change it back. The additions below pop up
the print dialog so you can print as many labels as required or
change the tray further if required.
Sub GetContent()
Dim f1, f2, f3, f4, f5, f6, f7, sLayout As String
Dim strLabel As String
Dim sTray As String
Dim sName As String
Dim bProtected As Boolean

'Unprotect the file
If ActiveDocument.ProtectionType wdNoProtection Then
bProtected = True
ActiveDocument.Unprotect Password:=""
End If
'get the filename of the form document
sName = ActiveDocument.FullName
'Get the field content
f1 = ActiveDocument.FormFields("Text1").Result
f2 = ActiveDocument.FormFields("Text2").Result
f3 = ActiveDocument.FormFields("Text3").Result
f4 = ActiveDocument.FormFields("Text4").Result
f5 = ActiveDocument.FormFields("Text5").Result
f6 = ActiveDocument.FormFields("Text6").Result
f7 = ActiveDocument.FormFields("Text7").Result
'assemble the content with associated text
sLayout = "PRODUCT DESCRIPTION " & f1 & " COMPONENT " & f2 _
& vbCr & "MPI No " & f3 & " DRAWING# " & f4 _
& " REV NO " & f5 & " ASSEMBLY DWG " & f6 _
& vbCr & "TOT QTY " & f7
'Pick the label type
strLabel = InputBox("Label stock number?", "Labels", 5263)
'Create the label
Application.MailingLabel.CreateNewDocument Name:=strLabel,
Address:=sLayout
'Print the labels
sTray = Options.DefaultTray
Options.DefaultTray = "Drawer 1"
Dialogs(wdDialogFilePrint).Show
Options.DefaultTray = sTray
'Switch back to the form document
Windows(sName).Activate

'Reprotect the form document.
If bProtected = True Then
ActiveDocument.Protect _
Type:=wdAllowOnlyFormFields, NoReset:=True, Password:=""
End If
End Sub



vandy wrote:
Hello Graham,

Thanks for the document giving me an option for selecting the
tray. I am new woking with macros and have attempted to add the
code with the exisiting macro you gave me.
I am running into run time errors.

I am getting the users input to print the labels and assuming
that this macro will print from drawer 1 thus choosing the tray
and if not than it print out from drawer 2.



Sub GetContent()
Dim f1, f2, f3, f4, f5, f6, f7, sLayout As String
Dim strLabel As String
Dim bProtected As Boolean

Dim sCurrentPrinter As String
Dim sTray As String
Dim sQuery As String

'Unprotect the file
If ActiveDocument.ProtectionType wdNoProtection Then
bProtected = True
ActiveDocument.Unprotect Password:=""
End If
'Get the field content
f1 = ActiveDocument.FormFields("Text1").Result
f2 = ActiveDocument.FormFields("Text2").Result
f3 = ActiveDocument.FormFields("Text3").Result
f4 = ActiveDocument.FormFields("Text4").Result
f5 = ActiveDocument.FormFields("Text5").Result
f6 = ActiveDocument.FormFields("Text6").Result
f7 = ActiveDocument.FormFields("Text7").Result
'assemble the content with associated text
sLayout = "PRODUCT DESCRIPTION " & f1 & " COMPONENT " & f2 _
& vbCr & "MPI No " & f3 & " DRAWING# " & f4 _
& " REV NO " & f5 & " ASSEMBLY DWG " & f6 _
& vbCr & "TOT QTY " & f7
'Pick the label type
strLabel = InputBox("Label stock number?", "Labels", 5263)
'Create the label
Application.MailingLabel.CreateNewDocument Name:=strLabel,
Address:=sLayout 'Reprotect the document.
If bProtected = True Then
ActiveDocument.Protect _
Type:=wdAllowOnlyFormFields, NoReset:=True, Password:=""
End If



sQuery = MsgBox("Print Labels?", vbYesNo, "Labels")
If sQuery = vbYes Then 'Answer is print labels

ActivePrinter = "\\numetServer\Canon5000ps downstairs" 'Set the
required printer

Options.DefaultTray = "Drawer 1" 'set labels to Tray 1
End If

If sQuery = vbNo Then 'Answer is regular document
ActivePrinter = "\\numetServer\Canon5000ps downstairs" 'Set the
required printer
Options.DefaultTray = "Drawer 2" 'Set labels to Tray 2
End If

With Dialogs(wdToolsEnvelopesAndLabels)
sCurrentPrinter = ActivePrinter 'Save the current printer
sTray = Options.DefaultTray 'Save the current tray
'ask the user whether labels are required
.DoNotSetAsSysDefault = True
.Execute
Dialogs(wdDialogToolsEnvelopesAndLabels).Show 'Pop up the
wizard dialog ActivePrinter = sCurrentPrinter 'Put the printer
back as it was at the start Options.DefaultTray = sTray 'Put
the tray back as it was at the start DoNotSetAsSysDefault =
True .Execute
End With
End Sub

window shuts down and word autosaves my document. Where am i
going wrong.

Thanks for the help.


"Graham Mayor" wrote:

You can select the label tray from the print dialog - you
should also be able to edit the tray from the envelope/label
dialog - options.
You can do any of this by macro if you know the parameters -
see the examples for selectring alternative printers and/or
trays at http://www.gmayor.com/fax_from_word.htm

--

Graham Mayor - Word MVP

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



 




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 08:45 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.