Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
DiscussionsAccessExcelInfoPathOutlookPowerPointPublisherWord
DirectoryUser Groups
Related Topics
Outlook ExpressInternet ExplorerWindowsMS Server ProductsMore Topics ...

MS Office Forum / Word / Programming / October 2006

Tip: Looking for answers? Try searching our database.

Range Madness and Other Frustrations

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Greg Maxey - 24 Oct 2006 20:00 GMT
This is a very long post.  I have had fits today working with ranges
and an on exit event.  My challenge (perhaps your   childs play) was to
create a conditional additional question in a form.

Example:

Why did the chicken cross the road?  "Dropdown field containing
multiple choices"

If the selection made above was "To get the other side" Then display a
follow-up question:

Did she say why she wanted to cross the road:  "Dropdown field
containing yes and no"

I created the first question and dropdown field using "Question" as the
bookmark name.

>From the beginning, I figured that using a stored AutoText entry of the
follow-up question and dropdown field would be the easiest approach.

I created the follow-up question and dropdown field using "FUA" as the
bookmark name.  I then stored the follow-up question and formfield as
AutoText "FUQ."

I used a bookmark "FUQ" to designate the placement of the conditional
question.

Since the FUQ needed to be displayed or hidden depending on the
condition, I realized that I would need to write either the AutoText
FUQ or "" to the bookmark range and redefine the range with each
change.

My first coding attempt was:

Sub OnExitDropDown()
Dim oFF As FormFields
Dim oRng As Word.Range
Set oFF = ActiveDocument.FormFields
Select Case
oFF("Question").DropDown.ListEntries(oFF("Question").DropDown.Value).Name
 Case Is = "Yes"
   ActiveDocument.Unprotect
   Set oRng = ActiveDocument.Bookmarks("FUQ").Range
   oRng.Text = NormalTemplate.AutoTextEntries("FUQ")
   ActiveDocument.Bookmarks.Add "FUQ", oRng
   ActiveDocument.Protect wdAllowOnlyFormFields, True
 Case Else
   ActiveDocument.Unprotect
   Set oRng = ActiveDocument.Bookmarks("FUQ").Range
   oRng.Text = ""
   ActiveDocument.Bookmarks.Add "FUQ", oRng
   ActiveDocument.Protect wdAllowOnlyFormFields, True
End Select
End Sub

To my dismay, I realized that "oRng.Text =" must be taken literally as
the displayed result was:

"Did he say why he crossed the road?  * FORMDROPDOWN **" and not the
questions text with a functional formfield :-(

I monkey around with the oRng object a bit but I couldn't find a method
that would allow me to put the actual working content of the AutoText
entry in oRng.

Question 1 - Is there a method to put something other than literal text
in a range?

Giving up that approach, I next thought about using a find and replace
with autotext routine that me and friend Graham Mayor worked out
sometime ago.

My approach was to write a "flag" within the bookmark range then use
the find replace routine to replace the flag with the AutoText entry.

I used this code:

Sub OnExitDropDown()
Dim oFF As FormFields
Dim oRng As Word.Range
Set oFF = ActiveDocument.FormFields
Select Case
oFF("Question").DropDown.ListEntries(oFF("Question").DropDown.Value).Name
 Case Is = "Yes"
   ActiveDocument.Unprotect
   Set oRng = ActiveDocument.Bookmarks("FUQ").Range
   oRng.Text = "*@*"
   ActiveDocument.Bookmarks.Add "FUQ", oRng
   RWAT
   ActiveDocument.Protect wdAllowOnlyFormFields, True
 Case Else
   ActiveDocument.Unprotect
   Set oRng = ActiveDocument.Bookmarks("FUQ").Range
   oRng.Text = ""
   ActiveDocument.Bookmarks.Add "FUQ", oRng
   ActiveDocument.Protect wdAllowOnlyFormFields, True
End Select
End Sub

And

Sub RWAT()
Dim oSPRng As Word.Range
Dim oSrchRng As Range
Dim pFN As String
'Create a scratch pad
Set oSPRng = Documents.Add.Range
NormalTemplate.AutoTextEntries("FUQ").Insert oSPRng
'Cut the inserted entry to the clipboard
oSPRng.End = ActiveDocument.Range.End - 1
oSPRng.Cut
ActiveDocument.Close wdDoNotSaveChanges
'crumple up the scratch pad
'Replace found text with the clipboard contents.
Set oSrchRng = ActiveDocument.Bookmarks("FUQ").Range
With oSrchRng.Find
 .ClearFormatting
 .Replacement.ClearFormatting
 .Text = "*@*"
 .Replacement.Text = "^c"
 .Execute Replace:=wdReplaceOne
 If .Found = True Then MsgBox "Flag found" 'Added for testing
End With
End Sub

Again to my dismay and despite the Msgbox displaying "Flag found," the
result in the document at the bookmark was:

*@*

I stepped through the code repeatedly and each time all indications
where that the flag was found, the replacement executed, but the result
was the same as shown above :-(

I fiddled around with this and soon realized (but can't explain why)
that if I set the flag as "*@*" and the then searched for "*@" the
result at the bookmark was:

Did he say why he crossed the road?  "a fully functional dropdown"*

Viewing this as a minor concession, I changed the flag to:

oRng.Text = "*@ "  'note the trailing space

and this left just a single extra space at the end of the bookmark
range instead of "*."

Question 2 - Can someone explain the behavior described above?  Why
when the found range includes the entire bookmark range does the
replacement fail?

Thinking that I had found a solution, I set my macro to run on exit
from the "Question" formfield.

My euphoria was quickly dashed.  While the code worked perfectly when I
a) stepped through it with the editor, and b) ran it directly from the
editor, it failed when triggered by tabbing out of the formfield.

It was generating a RTE 4198 "Command failed" while attempting to
execute this line of code in the RWAT procedure:

ActiveDocument.Close wdDoNotSaveChanges

Since it ran normally from the editor, I suspected that this must have
something to do with the field controlling the activedocument until the
procedure is completed.  I tried all I know to create a specific
document object e.g.,

Dim oDoc as Word.Document
Set oDOC = Documents.Add
.....
oDoc.Close

but I got the same error regardless of what I tried.

Question 3 - Can anyone explain the behavior described above?

Sticking with the find and replace autotext theme and convinced that
attempting to close the scratch pad was the stumbling block, I elected
to add a scratch pad at the end of the active document and then delete
it.

This is the RWAT code (note the main code stayed the same):

Sub RWAT()
Dim oSPRng As Word.Range
Dim oSrchRng As Range
'Create a note area
Set oSPRng = ActiveDocument.Range
oSPRng.Start = ActiveDocument.Range.End
'Write the AutoText entry
NormalTemplate.AutoTextEntries("FUQ").Insert oSPRng
'Cut the inserted entry to the clipboard
oSPRng.End = ActiveDocument.Range.End - 1
oSPRng.Cut
'tear off the scratch pad :-)
'Replace flag with the clipboard contents.
Set oSrchRng = ActiveDocument.Bookmarks("FUQ").Range
With oSrchRng.Find
 .ClearFormatting
 .Replacement.ClearFormatting
 .Text = "*&"
 .Replacement.Text = "^c"
 .Execute Replace:=wdReplaceOne
End With
End Sub

This appears to be working as expected but I have not fully tested the
possible effects on the document from creating and then deleting the
note area.

Additionally, I learned that I could get rid of the extraneous space
within the bookmark by redefining the bookmark again using oRgn after
it contained the functioning AutoText and I added code to select the
new dropdown field:

Final version:

Sub RWAT()
Dim oSPRng As Word.Range
Dim oSrchRng As Range
'Create a note area
Set oSPRng = ActiveDocument.Range
oSPRng.Start = ActiveDocument.Range.End
'Write the AutoText entry
NormalTemplate.AutoTextEntries("FUQ").Insert oSPRng
'Cut the inserted entry to the clipboard
oSPRng.End = ActiveDocument.Range.End - 1
oSPRng.Cut
'tear off the scratch pad :-)
'Replace flag with the clipboard contents.
Set oSrchRng = ActiveDocument.Bookmarks("FUQ").Range
With oSrchRng.Find
 .ClearFormatting
 .Replacement.ClearFormatting
 .Text = "*&"
 .Replacement.Text = "^c"
 .Execute Replace:=wdReplaceOne
End With
End Sub

Question 4 - This seems like a brutally complicated process yet appears
that it could be applied relatively to several scenarios.

An earlier thought this morning was to simply insert the AutoText at
the bookmark then move the bookmark range and redefined it:

This code worked but I didn't like the idea of having to "know" what
the last text character was in the formfield (i.e., the "?")

Sub OnExitDropDown1()
Dim oFF As FormFields
Dim oRng As Word.Range
Set oFF = ActiveDocument.FormFields
Select Case
oFF("DropDown1").DropDown.ListEntries(oFF("DropDown1").DropDown.Value).Name
 Case Is = "To get to the other side"
   ActiveDocument.Unprotect
   Set oRng = ActiveDocument.Bookmarks("FUQ").Range
   NormalTemplate.AutoTextEntries("FUQ").Insert oRng
   oRng.MoveEndUntil Cset:="?", Count:=wdForward
   oRng.MoveEnd wdWord, 2
   ActiveDocument.Bookmarks.Add "FUQ", oRng
   ActiveDocument.Protect wdAllowOnlyFormFields, True
   ActiveDocument.Bookmarks("FUA").Range.FormFields(1).Select
 Case Else
   ActiveDocument.Unprotect
   Set oRng = ActiveDocument.Bookmarks("FUQ").Range
   oRng.Text = ""
   ActiveDocument.Bookmarks.Add "FUQ", oRng
   ActiveDocument.Protect wdAllowOnlyFormFields, True
End Select
End Sub

However after all this effort I am beginning to think that I should
have stayed with this idea. LOL

Interested in any other ideas and simplifications.

Thanks.
Dian D. Chapman, MVP - 24 Oct 2006 23:47 GMT
You're right...ranges are a PITA. I avoid them at all cost. ;-)

I had to do a LOT of AutoText and File inserts in this project:
http://www.mousetrax.com/Consulting_Solutions.html#reviews

So, although I have all separate subs for InsertAutoText, Rewrap and
GoToBookmark in the modMain for this...I've pulled the code out into
static code below so it can be run in one shot and I commented out the
other stuff in the sub that doesn't apply here.

Rather than messing with ranges, I went the weenie route<g>. Since you
KNOW the cursor will end up at the end of the insert, you can move one
char back to get to the end of the previous line. Then you select back
to the original bookmark. Now you have the current insert selected.

Then just delete the original bookmark and, since you've passed that
name into a variable, you still have it within the procedure, so you
can readd it now that you have the entire area selected. This rewraps
the content with the same bookmark so the info can be changed if
needed in an update (the project was an employee review that would
most likely be often updated).

And if you don't NEED the bookmark cos' the info is NO, you can just
delete it...or do what I did...style that bookmark para with a bogus
1pt font so no one but you will even know it's there cos' it's too
tiny to see. ;-)

Jay or Bill could probably come up with something slicker...but this
worked great for me for the MANY inserts and updates that were needed
for the several pages of review data needed in the docs.

Sub InsertAndWrapAutoText(strBookmark As String, _
 strAutoText As String)
'dian@mousetrax.com
'PURPOSE: inserts autotext content into bookmarked location
   'rewraps w/same bookmark
'**********************
'On Error GoTo Handler

'unlock doc
'modMain.ToggleFormLock
   
   'go to bookmark location
   Selection.GoTo What:=wdGoToBookmark, Name:=strBookmark

   'insert autotext
   ActiveDocument.AttachedTemplate.AutoTextEntries(strAutoText) _
      .Insert Where:=Selection.Range, RichText:=True

   'move cursor back one char to end of this last insertion point
   Selection.MoveLeft unit:=wdCharacter, Count:=1

   'turn on EXT (selection function)
   Selection.Extend

   'move back up to starting bookmark, which selects this insert
   Selection.GoTo What:=wdGoToBookmark, Name:=strBookmark

   'delete original single bookmark
   ActiveDocument.Bookmarks(strBookmark).Delete

   'rewrap w/double bookmark
   With ActiveDocument.Bookmarks
       .Add Range:=Selection.Range, Name:=strBookmark
   End With

'relock doc
'modMain.ToggleFormLock

'GoTo done
'Handler:
'    gstrErrorString = "InsertAndWrapAutoText:modMain"
'    modErrorHandler.ErrorLog gstrErrorString
'done:

End Sub

Dian D. Chapman
Technical Consultant, Microsoft MVP
MOS Certified, Editor/TechTrax

Free MS Tutorials: http://www.mousetrax.com/techtrax
Free Word eBook: http://www.mousetrax.com/books.html 
Optimize your business docs: http://www.mousetrax.com/consulting
Learn VBA the easy way: http://www.mousetrax.com/techcourses.html
Greg Maxey - 25 Oct 2006 00:50 GMT
Dian,

Thanks.  Your complete abandonment of range is a bit too radical for me, but
I was able to put together a composite that seems to work really well:

Sub OnExitQuestion()
Dim oRng As Word.Range
Dim oFF As FormFields
With ActiveDocument
 If .ProtectionType <> wdNoProtection Then .Unprotect
 Set oFF = .FormFields
 Select Case oFF("PriAnswer").Result
   Case Is = "To get to the other side"
  'If the secondary question and formfield already exists then skip
creation.  If not, create the secondary question and redefine the bookmark
   If Not .Bookmarks.Exists("SecAnswer") Then
     Selection.GoTo What:=wdGoToBookmark, Name:="FUQ"
     .AttachedTemplate.AutoTextEntries("FUQ").Insert Selection.Range, True
     Set oRng = Selection.Range
     oRng.Start = .Bookmarks("FUQ").Start
     .Bookmarks.Add "FUQ", oRng
   End If
   .Bookmarks("SecAnswer").Range.FormFields(1).Select
 Case Else
   Set oRng = .Bookmarks("FUQ").Range
   oRng.Text = ""
   .Bookmarks.Add "FUQ", oRng
 End Select
 If .ProtectionType <> wdAllowOnlyFormFields Then
   .Protect wdAllowOnlyFormFields, True
 End If
End With
End Sub

If anyone else is ready this then I am still interested in explanations for
the seemingly wierd behaviour with decribed earlier.

Signature

Greg Maxey/Word MVP
See:
http://gregmaxey.mvps.org/word_tips.htm
For some helpful tips using Word.

> You're right...ranges are a PITA. I avoid them at all cost. ;-)
>
[quoted text clipped - 81 lines]
> Optimize your business docs: http://www.mousetrax.com/consulting
> Learn VBA the easy way: http://www.mousetrax.com/techcourses.html
Dian D. Chapman, MVP - 25 Oct 2006 06:21 GMT
HA! Purist! ;-)

Dian ~

>Dian,
>
[quoted text clipped - 32 lines]
>If anyone else is ready this then I am still interested in explanations for
>the seemingly wierd behaviour with decribed earlier.
Jay Freedman - 25 Oct 2006 01:42 GMT
I usually have just the opposite opinion -- I'd much rather work with
ranges than with the Selection. But this one has whupped my butt. I
think there's a bug lurking in here somewhere.

This macro *should* handle Greg's assignment, and it almost does:

Sub OnExitDropDown()
   Dim oDoc As Document
   Dim oTmpl As Template
   Dim oRng As Range
   Dim ff As FormField
   
   Set oDoc = ActiveDocument
   Set oTmpl = oDoc.AttachedTemplate
   Set ff = oDoc.FormFields("Question")
   Set oRng = oDoc.Bookmarks("FUQ").Range
   
   With oDoc
       If .ProtectionType <> wdNoProtection Then
           .Unprotect
       End If
       
       If ff.DropDown.ListEntries(ff.DropDown.Value).Name = _
               "To get to the other side." Then
           oRng = oTmpl.AutoTextEntries("FUQ") _
               .Insert(where:=oRng, RichText:=True)
       Else
           oRng.Text = ""
       End If
       
       .Bookmarks.Add Name:="FUQ", Range:=oRng
       .Protect Type:=wdAllowOnlyFormFields, NoReset:=True
   End With
End Sub

But when the AutoTextEntry is inserted, I always get two copies of it,
one with an "unrecognized character" square instead of the working
dropdown, and then one with the working dropdown. The returned range,
which then gets bookmarked, contains only the nonworking copy.

If I insert the entry from the Insert > AutoText menu, or even if I
run the equivalent VBA statement in the Immediate window, I just get
the working copy. I just can't seem to get the full macro to behave
right. <shrug>

--
Regards,
Jay Freedman
Microsoft Word MVP        FAQ: http://word.mvps.org
Email cannot be acknowledged; please post all follow-ups to the
newsgroup so all may benefit.

>You're right...ranges are a PITA. I avoid them at all cost. ;-)
>
[quoted text clipped - 81 lines]
>Optimize your business docs: http://www.mousetrax.com/consulting
>Learn VBA the easy way: http://www.mousetrax.com/techcourses.html 
Greg Maxey - 25 Oct 2006 02:54 GMT
Jay,

Weird isn't it :-(

I merged your code with the code I worked out after reading Dian's
suggestions and came up with this:

Sub OnExitDropDown()
Dim oDoc As Document
Dim oTmpl As Template
Dim oRng As Range
Dim ff As FormField
Set oDoc = ActiveDocument
Set ff = oDoc.FormFields("PriAnswer")
Set oRng = oDoc.Bookmarks("FUQ").Range
With oDoc
 If .ProtectionType <> wdNoProtection Then .Unprotect
 If ff.Result = "To get to the other side" Then
   If Not .Bookmarks.Exists("SecAnswer") Then
     oRng.Select
     .AttachedTemplate.AutoTextEntries("FUQ").Insert Selection.Range, True
     Set oRng = Selection.Range
     oRng.Start = .Bookmarks("FUQ").Start
     .Bookmarks.Add "FUQ", oRng
   End If
    .Bookmarks("SecAnswer").Range.FormFields(1).Select
 Else
   oRng.Text = ""
   .Bookmarks.Add Name:="FUQ", Range:=oRng
 End If
 .Protect Type:=wdAllowOnlyFormFields, NoReset:=True
End With
End Sub

This is seems to be working good, but I can't explain the weird behaviour
using only ranges.

Signature

Greg Maxey/Word MVP
See:
http://gregmaxey.mvps.org/word_tips.htm
For some helpful tips using Word.

> I usually have just the opposite opinion -- I'd much rather work with
> ranges than with the Selection. But this one has whupped my butt. I
[quoted text clipped - 127 lines]
>> Optimize your business docs: http://www.mousetrax.com/consulting
>> Learn VBA the easy way: http://www.mousetrax.com/techcourses.html
Dian D. Chapman, MVP - 25 Oct 2006 06:25 GMT
Cool beans, Greg!

But as I said, mine wasn't all that elegant, but it DID get me through
the project in a short time and worked great.

But I will steal your code now to add to my library! :-P

Dian ~

>Jay,
>
[quoted text clipped - 32 lines]
>This is seems to be working good, but I can't explain the weird behaviour
>using only ranges.
Greg Maxey - 25 Oct 2006 14:42 GMT
Jay,

If I step through your code and stop after this line:

oRng = oTmpl.AutoTextEntries("FUQ").Insert(where:=oRng, RichText:=True

I can go into the document and use Undo to see that two actions have
taken place.  The first is Insert Auto Text which places the functional
dropdown at the proper location.  The second is VBA-Range.Text which
puts the non-functional AT at the bookmark range and pushes the working
AT to the right.

I don't understand it, but Jean-Guy's method appears to be the intended
method.

Can you explain the issue with "Command Failed" when I tried to close a
document?

Thanks.
> I usually have just the opposite opinion -- I'd much rather work with
> ranges than with the Selection. But this one has whupped my butt. I
[quoted text clipped - 133 lines]
> >Optimize your business docs: http://www.mousetrax.com/consulting
> >Learn VBA the easy way: http://www.mousetrax.com/techcourses.html
Jay Freedman - 25 Oct 2006 17:42 GMT
Hi Greg,

> Can you explain the issue with "Command Failed" when I tried to close
> a document?

I can't really "explain" it in terms of what causes it, but I've seen
something similar. In this case, I was trying to copy a table from an
existing document to a new document, and then I wanted to close the existing
document without saving. I got the same error. It seems that there was a
handle or something pointing to the table's original location, and that was
preventing the document from closing. The only information I could find
about it was a KB article about PowerPoint 2002, saying there was a hotfix
for that program. :-(

What I eventually wound up with was an OnTime call that fires another macro
1 second later, and that closes the document.

Signature

Regards,
Jay Freedman
Microsoft Word MVP        FAQ: http://word.mvps.org
Email cannot be acknowledged; please post all follow-ups to the newsgroup so
all may benefit.

> Jay,
>
[quoted text clipped - 154 lines]
>>> Optimize your business docs: http://www.mousetrax.com/consulting
>>> Learn VBA the easy way: http://www.mousetrax.com/techcourses.html
Tony Jollans - 25 Oct 2006 21:30 GMT
I haven't checked this but I would say that the problem is the line:

   oRng = oTmpl.AutoTextEntries("FUQ") _
                .Insert(where:=oRng, RichText:=True)

which should be:

   SET oRng = oTmpl.AutoTextEntries("FUQ") _
                .Insert(where:=oRng, RichText:=True)

The Autotext is inserted after (and outside) the bookmark. The Insert method
returns a Range and the default property of the range (the Text) is assigned
to oRng.text which is inside the bookmark. The reason the 'dropdown' doesn't
work is the same as the reason Greg's original failed - you can't insert it
as text.

--
Enjoy,
Tony

> Hi Greg,
>
[quoted text clipped - 178 lines]
> >>> Optimize your business docs: http://www.mousetrax.com/consulting
> >>> Learn VBA the easy way: http://www.mousetrax.com/techcourses.html
Jay Freedman - 25 Oct 2006 21:58 GMT
Thank you, Tony! You're absolutely correct.

I have a bad history of forgetting the Set keyword, and my opinion of the
concept of default properties would blister the phosphors off my screen. It
doesn't help that my primary language at work these days is C#, which
doesn't have either.

Signature

Regards,
Jay

> I haven't checked this but I would say that the problem is the line:
>
[quoted text clipped - 57 lines]
>>>
>>> Thanks.
Tony Jollans - 25 Oct 2006 23:07 GMT
> my opinion of the
> concept of default properties would blister the phosphors off my screen.

LOL! I agree - they cause more problems than they cure.

--
Enjoy,
Tony

> Thank you, Tony! You're absolutely correct.
>
[quoted text clipped - 68 lines]
> >>>
> >>> Thanks.
Greg Maxey - 26 Oct 2006 02:28 GMT
Yes Tony "Set" or rather the lack of it seemed to be the problem.

Thanks!

Signature

Greg Maxey/Word MVP
See:
http://gregmaxey.mvps.org/word_tips.htm
For some helpful tips using Word.

> I haven't checked this but I would say that the problem is the line:
>
[quoted text clipped - 197 lines]
>>>>> Optimize your business docs: http://www.mousetrax.com/consulting
>>>>> Learn VBA the easy way: http://www.mousetrax.com/techcourses.html
Jean-Guy Marcil - 25 Oct 2006 12:19 GMT
Greg Maxey was telling us:
Greg Maxey nous racontait que :

> This is a very long post.  I have had fits today working with ranges
> and an on exit event.  My challenge (perhaps your   childs play) was
[quoted text clipped - 39 lines]
> oFF("Question").DropDown.ListEntries(oFF("Question").DropDown.Value).Name
>  Case Is = "Yes"

Shouldn't this be:

   Case Is "To get the other side"

you did write:
> If the selection made above was "To get the other side" Then display a
> follow-up question:

I am not sure I understand all the problems you had, but, it seems your
original intent was to display or hide some text (that would include a form)
based on a selection made in a dropdown formfield.

Your approach was to use AutoText.

Right?

If that is the case, I had no problem with the following simple code:

'_______________________________________
Const strBMK_Name As String = "FUQ"
Const strAT_Name As String = "FUQ"
Dim oFF As FormFields
Dim oRng As Word.Range

With ActiveDocument
   Set oFF = .FormFields
   .Unprotect
   Select Case oFF("Question").DropDown.Value
       Case 2
           Set oRng = .Bookmarks(strBMK_Name).Range
           With oRng
               'if oRng has more than one charcter,
               'the autotext has already been inserted
               If Not Len(.Text) > 1 Then
                   .Text = strAT_Name
                   .InsertAutoText
               End If
           End With
       Case Else
           Set oRng = .Bookmarks(strBMK_Name).Range
           With oRng
               .Text = ""
           End With
   End Select
   .Bookmarks.Add strBMK_Name, oRng
   .Protect wdAllowOnlyFormFields, True
End With
'(The second entry in the main drop down is "To get the other side")
'_______________________________________

But I have probably missed your point....

Signature

Salut!
_______________________________________
Jean-Guy Marcil - Word MVP
jmarcilREMOVE@CAPSsympatico.caTHISTOO
Word MVP site: http://www.word.mvps.org

Greg Maxey - 25 Oct 2006 13:10 GMT
Jean-Guy,

BRAVO!!  You nailed the point and I never thought of the
.InsertAutoText method.  It appears to work perfectly and as I would
have expected.  I am still perplexed with the oddities that I observed
in trying to get to this point and the one that Jay uncovered.  There
is certainly something weird about the range object, bookmarks, and
AutoText all trying to play together.  Thanks.

I ended up using Select Case ff("Question").Result rather than the
dropdown value method I posted earlier and

  Case Is throws and error
  Case Is = does not

> Greg Maxey was telling us:
> Greg Maxey nous racontait que :
[quoted text clipped - 101 lines]
> jmarcilREMOVE@CAPSsympatico.caTHISTOO
> Word MVP site: http://www.word.mvps.org
Jean-Guy Marcil - 25 Oct 2006 15:18 GMT
Greg Maxey was telling us:
Greg Maxey nous racontait que :

> Jean-Guy,
>
[quoted text clipped - 10 lines]
>   Case Is throws and error
>   Case Is = does not

Right, I meant

   Case Is = "To get the other side"

But, personally, I never use "Is":

   Case "To get the other side"

or, for multiple cases:

   Case 2, 3, 5

etc.

Signature

Salut!
_______________________________________
Jean-Guy Marcil - Word MVP
jmarcilREMOVE@CAPSsympatico.caTHISTOO
Word MVP site: http://www.word.mvps.org

Greg Maxey - 25 Oct 2006 15:27 GMT
Yes I see now.  Old habit I guess.

Thanks.
> Greg Maxey was telling us:
> Greg Maxey nous racontait que :
[quoted text clipped - 34 lines]
> jmarcilREMOVE@CAPSsympatico.caTHISTOO
> Word MVP site: http://www.word.mvps.org
Greg Maxey - 25 Oct 2006 14:28 GMT
Jean-Guy,

Actually using your method you don't really need the If Not Len(.Text)
> 1 statement.

> Greg Maxey was telling us:
> Greg Maxey nous racontait que :
[quoted text clipped - 101 lines]
> jmarcilREMOVE@CAPSsympatico.caTHISTOO
> Word MVP site: http://www.word.mvps.org
Jean-Guy Marcil - 25 Oct 2006 15:14 GMT
Greg Maxey was telling us:
Greg Maxey nous racontait que :

> Jean-Guy,
>
> Actually using your method you don't really need the If Not Len(.Text)

Actually, you do...

If you do not use this, when ever you tab out of the first question field
with the target answer selected, the conditional question would be replaced.
If the user had already answered and was just tabbing through the fields for
some reason, he would find it odd that the conditional question's answer had
changed...

Just trying to be thorough!

Right?

Signature

Salut!
_______________________________________
Jean-Guy Marcil - Word MVP
jmarcilREMOVE@CAPSsympatico.caTHISTOO
Word MVP site: http://www.word.mvps.org

Greg Maxey - 25 Oct 2006 15:28 GMT
And being thorough you are!

> Greg Maxey was telling us:
> Greg Maxey nous racontait que :
[quoted text clipped - 21 lines]
> jmarcilREMOVE@CAPSsympatico.caTHISTOO
> Word MVP site: http://www.word.mvps.org

Rate this thread:






 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.