Document out of focus

C

Cor van der Bliek

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?
 
A

AA2e72E

try inserting this in your code just before you begin to populate the newly
created document:

Application.Documents(2).Activate
 
C

Cor van der Bliek

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
 
A

AA2e72E

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
 
S

Stefan Blom

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.
 
C

Cor van der Bliek

I tried this, but can't figure it out, Stefan.
Could you detail this for me?
 
S

Stefan Blom

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
 
C

Cor van der Bliek

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
----------------
 
S

Stefan Blom

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top