View Single Post
  #7   Report Post  
Posted to microsoft.public.word.mailmerge.fields
sjamie[_2_] sjamie[_2_] is offline
external usenet poster
 
Posts: 3
Default How to Intercept the "Update All Labels" Button

Yes, I know a macro with same name as a Word command "should" take precedence
but for some reason it is not doing that for me. I added the line of code as
you suggested but the message never appeared when I used the Update All
Labels button. Of course, the message does appear when I run the code with a
keyboard shortcut. The problem is with the Update All Labels button not
running the code as it should. I checked to make sure the macro is named
properly (MailMergePropagateLabel), the template is saved in the Word Startup
folder and the template does show up (and is checked) in Tools - Templates &
Add-ins. The good news is I can update the labels using a keyboard shortcut
but I'd really like for the Update All Labels button to work. Plus, now I
really want to know why the button is not running the macro.

Any other suggestions?

P.S. Doug, I really appreciate you taking the time to troubleshoot this
problem with me!

"Doug Robbins - Word MVP" wrote:

With a macro that has the same name as a Word command, that macro should
take precedence over the Word command. Try opening the template at at the
beginning of the code insert a command at the beginning of the code in the
macro

MsgBox "Macro running"

and then try and update the labels and see if that message appears.

--
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, originally posted via msnews.microsoft.com

"sjamie" wrote in message
...
Yes, I am using Word 2003 and under Tools Templates and Add-ins, the
template is listed and IS checked. What else do I need to do?

"Doug Robbins - Word MVP" wrote:

Are you sure that the add-in is loaded? In Word 2007, from the Developer
tab, select Document Template and make sure that the template that you
created is there and has a check mark against it. In earlier versions,
from
the Tools menu, select Templates and Add-ins and make sure that the
template
that you created is there and has a check mark against it.

--
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, originally posted via msnews.microsoft.com

"sjamie" wrote in message
...
Doug, I did put the code into a template that I saved in the Word
Startup
folder so it becomes an add-in. The Update All Labels button still
calls
the
original, broken command resulting in only a few labels getting
populated.
But if I manually run the code as a macro via a keyboard shortcut, it
works
perfectly. I would prefer for the Update All Labels button to run the
corrected code.

Any more ideas?

"Doug Robbins - Word MVP" wrote:

If you put that code into a template that you save in the Word Startup
folder so that it becomes an add-in and will be available whenever you
need
it. As the macro has the same name as the Word Command that is
supposed
to
do the job, this macro will run when the Update Labels button is used
when
setting up the mail merge label main document.

--
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, originally posted via msnews.microsoft.com

"sjamie" wrote in message
...
I have a touchscreen laptop which causes my "Update All Labels"
button
to malfunction during a mail merge according to
http://support.microsoft.com/?kbid=898630.

I was able to use MVP Doug Robbins code below as a great workaround.
It runs perfectly as a MACRO that I initiate using a keyboard
shortcut
but I would like for it to run whenever I press the "Update All
Labels" button instead. I tried saving it as a template and putting
it in Word's startup folder but that had no effect. What else shall
I
do?


Sub MailMergePropagateLabel()
Dim atable As Table
Dim i As Long
Dim j As Long
Dim source As Cell
Dim target As Cell
Dim myrange As Range
Set atable = ActiveDocument.Tables(1)
Set source = atable.Cell(1, 1)
Set myrange = source.Range
myrange.Collapse wdCollapseStart
ActiveDocument.Fields.Add Range:=myrange, Text:="NEXT", _
PreserveFormatting:=False
source.Range.Copy
For j = 2 To atable.Columns.Count
Set target = atable.Cell(1, j)
If target.Range.Fields.Count 0 Then
target.Range.Paste
End If
Next j
For i = 2 To atable.Rows.Count
For j = 1 To atable.Columns.Count
Set target = atable.Cell(i, j)
If target.Range.Fields.Count 0 Then
target.Range.Paste
End If
Next j
Next i

atable.Cell(1, 1).Range.Fields(1).Delete

End Sub