View Single Post
 
Old 07-21-2023, 07:33 AM
azurtem azurtem is offline Windows 7 64bit Office 2013
Novice
 
Join Date: Apr 2016
Location: nice, france
Posts: 7
azurtem is on a distinguished road
Question Executing macro on each subsequent page/table

Hi

I have the following label template in Windows (v11) Word (v2021) : https://bit.ly/3K8IrKS

The objective is to print a list of mac addresses on individual labels

When merging data into this template, Word naturally fills the cells in from left to right and then from top to bottom

I would like to modify the resulting order of the merged cell entries in the table so as to sort them from top to bottom, and then from left to right

I came across this VBA script, generously shared by Greg Maxey : Table Re-sorter

It produces exactly the sought result; but for one page/table only. Which is totally fine.
Except that I need to execute this sort procedure on the subsequent pages/tables also present in this document

I therefore added some lines of code around the line that calls the "TableSort_Re_Sort" procedure as follows :
Code:
  Dim Pages As Long, PageNb As Long  
  Pages=Selection.Information(wdNumberOfPagesInDocument)
  For PageNb = 1 to Pages
	Selection.GoTo What:=wdGoToPage, Name:=PageNb
	TableSort_Re_Sort
  Next
To test this out, I place the cursor at the top left cell of page/table #1 and then run the macro

The added lines correctly position the cursor on the top left cell of each subsequent page/table through each iteration
But unfortunately, the "TableSort_Re_Sort" procedure only gets executed on page/table #1

If can obtain the desired (global) result (without my added code) if I position the cursor
in the top left cell of each page/table and manually execute the macro

There is obviously something that I don't understand in the VBA mechanism/process and hope that someone can point me in the right direction

Thank you

regards
yann
Reply With Quote