Document out of focus

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

I create documents, based on a special template. A Userforms collect all the
text in the fields and puts them on the appropriate places in the document.
This works fine the first time I do this. The second time, with a document
showing I have filled this way, a new document is created, but doesn't get
the focus. In other words when the Userform pops up, the first document is
still showing as the active document and the process of putting the input
text in the the new document fails, since Word tries to put the text in the
already filled in document.
The new document has been created, it shows as second in the list under the
Windows command.
How do I get the new document to become the active document before showing
the Userform?
 
try inserting this in your code just before you begin to populate the newly
created document:

Application.Documents(2).Activate
 
This leads Word to Document2, if this exists. Otherwise there's an error, and
it doesn't work when my active document is say document10.

It should be something like Application.Documents(Last+1).Activate
 
Application.Documents.Count returns the number of documents open.

I don't think you can be sure of the index of the target document all of the
time unless you open/create the target document before you do anything else:
then,

application.documents(1).Activate
 
Is the new document created with code? If it is, you could make use of
the return value from the Add method to get a reference to it.

Set mydoc = Documents.Add()

With mydoc
'Code here...
End With

If you are not creating the new document with code, maybe you should,
just to be able to reference it.
 
My point was that you shouldn't depend on what document is currently active,
if this is possible. But I haven't seen your code, and I'm definitely not a
programming expert, so I can't guarantee that I would know the solution even
if I had. If you need more information about the Add method of the Document
class, you could read about it in Word VBA Help. If you do find something
that could be useful, I suggest that you ask the question again, providing a
code sample in a vba newsgroup such as microsoft.public.word.vba.general.

Stefan Blom
 
I managed to solve the problem through this workaround:
on opening the template (and before showing the UserForm) I record the name
of the newly made document and save it to oDoc.
After closing the UserForm I activate oDoc. This seems to do the trick.
I still don't understand why the focus was lost on opening the UserForm.

Public oDoc As Document
Public Sub AutoNew()
Set oDoc = ActiveDocument
UserForm.Show
oDoc.Activate
End Sub
-------------
Private Sub OK_Click()
UserForm.Hide
oDoc.Activate
'overnemen invulvelden
End Sub
----------------
 
I'm glad that you managed to find a solution.

Note that some of the VBA groups probably knows why opening the UserForm
caused the document to lose the focus.

Stefan Blom
 
Back
Top