How to remove automatically some pages?

T

Tico

Hi All,

I have a big MS Word 97 file.
I am looking for any method that let me remove
automatically some pages which I can mark
using, for example, a special character as the
first on each page or in any other way.
I would be also satisfied if I could automatically
skip the pages whilst printing the file.

I can use the MS Word 2007 to do it, if necessary.

Could anyone help me please?
The matter is urgent.:)

Regards
Tico
 
T

Tico

Hi All,

I have a big MS Word 97 file.

To be precise: I'll create this big file using MailMerge
so I can add any special character at the beginning
of each page or so.
Unfortunately I am not able to skip the pages using
methods available in MailMerge. I have to do it after
creating the file.

I am looking for any method that let me remove
automatically some pages which I can mark
using, for example, a special character as the
first on each page or in any other way.
I would be also satisfied if I could automatically
skip the pages whilst printing the file.

I can use the MS Word 2007 to do it, if necessary.

Could anyone help me please?
The matter is urgent.:)

Regards
Tico
 
D

Doug Robbins - Word MVP

Use a macro containing the following code where you replace the #*# with the
special character that you intend to use.

Selection.HomeKey wdStory
Selection.Find.ClearFormatting
With Selection.Find
Do While .Execute(FindText:="#*#", MatchWildcards:=False,
Wrap:=wdFindContinue, Forward:=True) = True
Selection.Bookmarks("\page").Range.Delete
Loop
End With


--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
 
T

Tico

Thank you very much for your prompt reply.

Unfortunately I don't know enough about macros to be able to use the macro.
When I tried to use it I got the following lines in red:

Do While .Execute(FindText:="#*#", MatchWildcards:=False, Wrap:=wdFindContinue, Forward:=True) = True
Selection.Bookmarks("\page").Range.Delete

regardless what I replaced the "#*#" with.
My special character is \. I don't even know what I should writei n the macro: "#\#", "\" or simply \

I haven't found FindText in the "VBA for Dummies" for Office 97 that I have so I think I should save my file
as Word 2007 first and then use the macro.
I have Office 2007 (home edition) but I am not familiar with it yet, at least not to use macros.

I am afraid I'll have to remove the pages manually. :-(

Regards
Tico
 
G

Graham Mayor

The lines indicated in red have wrapped prematurely use the following which
should not wrap

Sub DeleteMarkedPages()
Selection.HomeKey wdStory
Selection.Find.ClearFormatting
With Selection.Find
Do While .Execute(findText:="\", _
MatchWildcards:=False, _
Wrap:=wdFindContinue, _
Forward:=True) = True
Selection.Bookmarks("\page").Range.Delete
Loop
End With

http://www.gmayor.com/installing_macro.htm

The macro will remove any page with the \ character in Word 2007 and should
work in Word 97 also, though I don't have it available to check. Word 2007
will open a Word document from Word 97 without the need to 'convert' it.


--
<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
Graham Mayor - Word MVP


<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
 
T

Tico

Thank you very, very much.
I created a sample file and it works!
Now I have to put the macro into my big file which is a result of MailMerge
and make a lot of tests.

By the way, I know almost nothing about VBA for Word.
I looked at your page and I found a lot of interesting things there.
However what I need most at the moment is any tutorial how to create
simple macros in Word from the very beginning. Not just examples,
which are important too, but first of all the most basic rules.
I read that one of ways is to record macros using Word and then
to analyse it in VBA Editor. I think that this can be useful later,
when you know a lot, but not at the beginning.
I am looking for any lessons, step by step showing what is neccessary
in a macro and what it means. Then more and more functions to
write working macros.
Having such background I'll be able to learn using other methods.

I tried to find anything like this in the Internet to download or use
on line, but without any success. I found a lot for Excel but I read
that the rules are not the same.

Could you please advice me anything suitable for a person who
is just starting with writing macros for Word?

Thanks again for your help.

Regards
Tico
 
D

Doug Robbins - Word MVP

See the article "Getting To Grips With VBA Basics In 15 Minutes" at:

http://www.word.mvps.org/FAQs/MacrosVBA/VBABasicsIn15Mins.htm

And many of the other articles at that website.

However, be advised that the only way to learn is to do.


--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
 
G

Graham Mayor

If you are splitting the results of a mail merge, see
http://www.gmayor.com/individual_merge_letters.htm
As Doug says, the only way to learn vba is to put it to use to perform
simple tasks and then get more adventurous. You can always use the macro
recorder to give you some ideas. It is by no means perfect but it does help
get you started.
You will find lots of coding examples in the vba programming forums and on
various web site, including my own.
The vba help in Word 2007 is rather better than in earlier versions.

--
<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
Graham Mayor - Word MVP


<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
 
T

Tico

Thank you both very, very much once again.

I used the macro to the big MailMerge output file and it works perfectly.
The macro would work faster if it could test just the first character
on each page but I don't know how to change it. But it works very well
and I am very grateful.

As for a tutorial I expected something I had when I learnt other languages
which began with "Hello World" or something like this. Then, step by step,
it showed how to use more and more complicated language tools.

Regards
Tico
 
G

Graham Mayor

Page is a vague concept in Word which is not a page layout application and
if you remove pages the document reflows to create a new 'page' structure.

--
<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
Graham Mayor - Word MVP


<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
 
T

Tico

I understand.

I thought that everything was OK but I have one problem:
the additional character damages to keeping a part of the first line
in the center.

I put in Excel file an addition column and the character "\" is put in it,
if the page in Word should be deleted or the character " ", if the page
in Word should'n be deleted. What is put : "\" or " " depends on other
values in Excel file.
Everything is OK but the first line on pages with " " is moved much
more to the left than the 1 character (" ") should use (the same happens
to pages with "\" but it is not important as they are deleted afterwards).

The first line on each page consists of the constant text and a number
that is put during the MailMerge process, like this

ABCDEF GHIJ KLMNOP {MERGEFIELD No}

The text should be in the center of the page, and the No on the right side.

After I added the character it looks like this:
{MERGEFIELD Char}ABCDEF GHIJ KLMNOP {MERGEFIELD No}

(Before I put the additional character everything was OK and the constant text
was in the center)

My MailMerge "source" file consist of 5 pages, not just one. After the process
of MailMerging I delete the "extra" pages using the macro from you.
Each of the "source" 5 pages has similar first line as I described above.

Could you help me once more, please?

Regards
Tico
 
T

Tico

The same happens when I put in the Excel file "" instead of " "
when I want a page not to be deleted.
I think it is somehow connected with the sign of new page
because sometimes it is OK but always after another sign
of new page. However i don't know how to force a correct
sign in the MaiMerge.

Regards
Tico
 
G

Graham Mayor

I am totally bemused now. If you don't want the page(s) with this particular
merge record, why are you merging the record in the first place?
Wouldn't e.g. {SKIPIF {Mergefield Char} = "\"} work?

--
<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
Graham Mayor - Word MVP


<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
 
T

Tico

No because SKIPIF cause to skip a whole record.
But I have to "produce" from 1 to 3 possible pages in Word
from each record depending on the data in Excel file. That's why
I have to "produce" all pages first and then to delete those which
are not necessary.

I tried to do it another way - I processed the Excel file 3 times
and then I sorted the pages manually but in case of big files it is
really a nuisance. The order of pages is important.

I'll try to solve the problem continuing what I wrote in my prevoius
news. I'll try not to center the first line however I don't understand
why it worked when I processed it 3 times separately without
the extra character. I don't know what causes the difference.

Regards
Tico
 
T

Tico

Sorry, I should have written 5 instead of 3 in my last news.

I have 5 kinds of pages however from each record only from
1 to 3 pages can be necessary. In "my" method I "produce"
all 5 pages for each Excel record and then I delete unnecessary
pages using tha macro from you.

Sorting the pages manually I had to repeat the process 5 times
however in this case I was able to produce only necessary
pages using SKIPIF, of course. But sorting it manually is
really a nuisance.

I thought about using the "NEXT RECORD IF ..." but in this case
I'd have to be able to skip pages in Word. :-(

Probably the best way would be to write a "regular" program
in Visual Basic or so, but unfortuantely I am not able to.

Regards
Tico
 
G

Graham Mayor

From your description you should conditionally insert the pages eg
{IF {Mergefield Char} <> "\" "{IncludeText c:\\path\\page1.doc"}" ""}
It is always easier not to add in the pages that you don't need than to
remove them later
--
<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
Graham Mayor - Word MVP


<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
 
T

Tico

I am not sure if I understand you well.

Do you mean to process for each kind of page separately
(as I described in the method with sorting manually) and
then to process the MailMerge again just to combine the
pages into one file in a proper order?

Regards
Tico
 
G

Graham Mayor

You claim your merge requires a number of pages according to the data.
Instead of merging all the pages and deleting the unwanted ones, include
only the ones you need according to the requirements of the data ie save
each page as a separate document and use includetext to insert only the
pages you want.

--
<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
Graham Mayor - Word MVP


<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
 
T

Tico

That's what I meant.

But I must make any mistake because I got:

{IF <> "\" "{IncludeText c: page1.doc"}" ""}
{IF \<> "\" "{IncludeText c: page2.doc"}" ""}
{IF \<> "\" "{IncludeText c: page3.doc "}" ""}
{IF \<> "\" "{IncludeText c: page4.doc "}" ""}
{IF \<> "\" "{IncludeText c: page5.doc "}" ""}
================ next page ==============
{IF <> "\" "{IncludeText c: page1.doc"}" ""}
{IF \<> "\" "{IncludeText c: page2.doc"}" ""}
{IF \<> "\" "{IncludeText c: page3.doc "}" ""}
{IF \<> "\" "{IncludeText c: page4.doc "}" ""}
{IF \<> "\" "{IncludeText c: page5.doc "}" ""}

etc.

n times, where n is the numer of rows in Excel files.

I must admin that I never used MailMerge this way so probably
I don't know about anything important.
First of all I don't understand why in this method just 1 page from
the file page1.doc or page2.doc etc is included in the output file.

Regards
Tico
 
T

Tico

My input ("source") file looked as follows:

{IF {MERGEFIELD I}<> "\" "{IncludeText c: page1.doc"}" ""}
{IF {MERGEFIELD II}<> "\" "{IncludeText c: page2.doc"}" ""}
{IF {MERGEFIELD III}<> "\" "{IncludeText c: page3.doc "}" ""}
{IF {MERGEFIELD IV}<> "\" "{IncludeText c: page4.doc "}" ""}
{IF {MERGEFIELD V}<> "\" "{IncludeText c: page5.doc "}" ""}

Tico
 

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