View Single Post
  #20   Report Post  
Posted to microsoft.public.word.docmanagement
Trefilov22 Trefilov22 is offline
external usenet poster
 
Posts: 31
Default A Macro that calls another Macro

Greg,

I am definately interested. That does sound the way to go. Bookmark form
would work I am guessing. Basically it just needs to go in, sort of in a
list type format. Like the first line would be John Doe, 2nd line would be
Jane Doe 3rd line etc. etc.

Where should I begin?

Thanks in advance!
Brian

"Greg Maxey" wrote:

Brian,

If you are already using a userform to collect data for your form then
I recommend that you use a multipage form and collect the defendent
data on a separate page. The problem I have with a box that keeps
popping up is a) they are annoying, and b) the user can't see what he
or she has already entered until the form publishes. You could easily
have 10 or 12 (or a hundred for that matter) text boxes on a separate
page titled "Defendent's" list. The code in the userform would only
process the fields filled in.

Contact me if you are interested.

Greg Maxey



On Sep 10, 10:54 am, Trefilov22
wrote:
I would prefer to use a userform as well, since the rest of the information
is inputted using a userform. Is it possible to have this run after the user
fills in the rest of the userform? Also how would I distinguish where the
information it asks, goes into the document? Would I just create a bookmark
and assign it that way?



"Graham Mayor" wrote:
While I would prefer a user form, you can still do this with an input box.
The following will do more or less what you asked - in that it will allow
the user to enter a series of names which are entered at the cursor. The
list of names is stored in a variable sDef, which you could use elsewhere,
but for the moment the variable is not used.


Sub Defendant()
Dim sName As String
Dim sDef As String
Dim Count As Long
Count = 1
sDef = ""
Do
sName = InputBox("Enter the name of Defendant " & _
Count, "Defendant " & Count)
If sName = "" Then GoTo NoMoreNames:
If Count 1 Then
sName = Chr(44) & Chr(32) & sName
End If
Selection.TypeText sName
Count = Count + 1
sDef = sDef & sName
Loop
Exit Sub
NoMoreNames:
'MsgBox sDef
If Count 1 Then Selection.TypeText " "
End Sub


--

Graham Mayor - Word MVP


My web sitewww.gmayor.com
Word MVP web sitehttp://word.mvps.org


Trefilov22 wrote:
I took a look at both sites, but haven't had any luck finding
anything in regards to this. It seems like in theory it would be
something that isn't too difficult to do, I just know nothing about
VBA to figure out how to program it to do so.


Basically what you are saying is that I would make a form that asks
for a Name or whatever I am looking for, and so long as there is an
entry, it drops that name into the document, and then asks for
another name. If it ends up being blank, at that point it stops the
process (at least thats how its done in WP 10).


I can see where you all have to work your tails off to learn all of
this stuff to become MVPs. Luckily once I get this last problem
sorted out I can wash my hands of these macros. All the others are
working correctly. I just have this issue in multiple forms.


Any other suggestions on where I can search?


Brian


"Graham Mayor" wrote:


You could do it with vba and a userform to ask the question and
paste the result into the document and do this repeatedly until you
tell it to stop. Userform coding does not lend itself readily to
reproduction in a newsgroup forum, but see Word MVP FAQ - Userforms
http://word.mvps.org/FAQs/Userforms.htmto get you started. You will
find lots of interesting userform examples on fellow MVP Greg
Maxey's web sitehttp://gregmaxey.mvps.org/word_tips.htm


--

Graham Mayor - Word MVP


My web sitewww.gmayor.com
Word MVP web sitehttp://word.mvps.org


Trefilov22 wrote:
Howdy Graham, you were so much help with my other question, I have a
new one for you. This is something that is possible within
WordPerfect 10, but am not sure if its possible in Word 2007. I
have a template, and a user has to enter names of people, but for
any given time, there may be 5 names, or there may be 2 names. In
WP, I can have it continuously ask for a name, until you leave the
field blank and hit enter, then it continues onto the next entry
(like date or whatever). Is there a way to have Word 07 ask the
same question (in this instance "Defendant's Name") until you leave
the field blank? We don't know from case to case how many
defendants there will be.


Thanks in advance!


"Graham Mayor" wrote:


You are welcome


--

Graham Mayor - Word MVP


My web sitewww.gmayor.com
Word MVP web sitehttp://word.mvps.org


Trefilov22 wrote:
Graham,


If I am ever in your neck of the woods, I definately owe you a
beer! This worked! I really appreciate your help with all of
this. I never would have been able to figure that out.


Brian


"Graham Mayor" wrote:


In that case, leave the entries in normal.dot and use the
following, which, if the entries are named as you describe and in
normal.dot, should work as it stands.


Sub ChooseSig()
Dim iUser As Integer
Dim sType As String
On Error GoTo UserCancelled:
iUser = InputBox("For Bethany, enter 1" & vbCr & _
"For Heather, enter 2" & vbCr & _
"For Jim, enter 3" & vbCr & _
"For Kathy Hutchens, enter 4" & vbCr & _
"For Kathy McCallister, enter 5" & vbCr & _
"For Kelli, enter 6" & vbCr & _
"For Krista, enter 7" & vbCr & _
"For Rhonda, enter 8" & vbCr & _
"For Thala, enter 9", "Select signature", 1)
Select Case iUser
Case 1
NormalTemplate.AutoTextEntries("Bethany").Insert _
Whe=Selection.Range, RichText:=True
Case 2
NormalTemplate.AutoTextEntries("Heather").Insert _
Whe=Selection.Range, RichText:=True
Case 3
NormalTemplate.AutoTextEntries("Jim").Insert _
Whe=Selection.Range, RichText:=True
Case 4
NormalTemplate.AutoTextEntries("Kathy Hutchens").Insert _
Whe=Selection.Range, RichText:=True
Case 5
NormalTemplate.AutoTextEntries("Kathy McCallister").Insert _
Whe=Selection.Range, RichText:=True
Case 6
NormalTemplate.AutoTextEntries("Kelli").Insert _
Whe=Selection.Range, RichText:=True
Case 7
NormalTemplate.AutoTextEntries("Krista").Insert _
Whe=Selection.Range, RichText:=True
Case 8
NormalTemplate.AutoTextEntries("Rhonda").Insert _
Whe=Selection.Range, RichText:=True
Case 9
NormalTemplate.AutoTextEntries("Thala").Insert _
Whe=Selection.Range, RichText:=True
Case Else
MsgBox "You have entered a number that is not in the list", _
vbInformation, "Error"
End Select
Exit Sub
UserCancelled:
MsgBox "User Cancelled", vbInformation, "Error"
End Sub


--

Graham Mayor - Word MVP


My web sitewww.gmayor.com
Word MVP web sitehttp://word.mvps.org


Trefilov22 wrote:
I'm not sure what a case statement name is. The first autotext
entry I have is named Bethany and its saved in the normal.dotm
Should I move this to the building blocks.dotx? here are the
names of the autotext entries:


Bethany
Heather
Jim
Kathy Hutchens
Kathy McCallister
Kelli
Krista
Rhonda
Thala


All are in the normal.dotm


"Graham Mayor" wrote:


I guess you are using the case statement version to retain your
autotext names? Rather than the macro posted below?
In this case put the names of your autotexts in quotes between
the brackets in place of "Sig" & iUser
Note that this will require you to ensure that your autotexts
are actually saved in normal.dot (you can move them with the
building block organiser) It makes for a lot less code if you
simple recreate your signatures with the names Sig1, Sig2 etc
(insert and resave) and use the shorter macro below. Then all
you have to do is change the names in the message box to match
the signature numbers.


--

Graham Mayor - Word MVP


My web sitewww.gmayor.com
Word MVP web sitehttp://word.mvps.org


Trefilov22 wrote:
Now this line:


'change the following line
NormalTemplate.BuildingBlockEntries("Sig" & iUser).Insert _
Whe=Selection.Range, RichText:=True
'end of change


is entered multiple times, changing the "Sig" to read whatever
the name of the autotext entry is? Then I put in the second,
and third, etc.


"Graham Mayor" wrote:


Word 2007 has the building blocks organizer which you can add
to the QAT and pick the autotexts (the signature blocks)
from a list. The macro I posted will simply insert the right
signature blocks *in any document* - provided they are named
correctly. However it will not work as it stands in Word 2007
as autotext entries work in a slightly different way there to
earlier versions. If we take the second example - it needs
the following change.


Sub ChooseSig()
Dim iUser


...

read more ;- Hide quoted text -

- Show quoted text -