how to bring all the pages data into a single page.
i think i had asked this before, but not sure about this.
Hello,In order not to create macros that are not needed, please clarify exactly what you want.What does "how to bring all the pages data into a single page."If possible give a descriptive example, some illustration of what you want to happen step by step. The better you explain the task, the easier the code will be to write. I have two specific questions:1. Can copied objects be on a single layer or must they be on layers as in the page they are copied from.2. Should the copied objects be of the same size as the page from which they are copied, or should they be scaled down and thus all the other pages are displayed on one page, but reduced in size by some possible percentage Greetings!
Copied objects be on a single layer without overlapping on each other pages content with another. Say 2 centimeters distance between them
Hello!Am I correct in assuming that there is 1 group of objects or 1 symbol on each page? Or the number of objects on each page is different - more than 1 ?And also, should the size of objects that are copied from multiple pages into one be preserved, or can it be reduced so that more objects fit on the page?Greetings!
NO. THEY SHOULD NOT BE REDUCED. I WANT ALL OTHER PAGES DATA EXACTLY WITHOUT ALTERING THEIR SIZES... BUT PUT THEM ALL IN A SINGLE PAGE AT THE DESKTOP AREA. THOUGH THE PAGE IS A4, I DO NOT BOTHER OF PAGE SIZE... LET THE FIRST PAGE BE LIKE THAT... BUT THE REST OF THE PAGES BE PLACED AT DESKTOP AREA. THEY SHOULD NOT BE OVERLAPPED EACH OTHER.
I have a "FlattenPages" macro but it calls a couple of other macros. I haven't bothered trying to "streamline" it.
Sub FlattenPages() Dim p As Page, s As Shape, sr As ShapeRange Dim i& Optimization = True ActiveDocument.BeginCommandGroup "FlattenPages" ActivePage.CreateLayer "Work Layer" For i = 1 To ActiveDocument.Pages.Count Set sr = ActiveDocument.Pages(i).Shapes.All For Each s In srsr.MoveToLayer ActiveLayerNext sNext iCall delEmptyPagesCall MoveToLayer1ActiveLayer.DeleteActiveDocument.EndCommandGroupOptimization = False ActiveWindow.RefreshEnd Sub
Sub delEmptyPages() Dim p As Page For Each p In ActiveDocument.Pages If p.Shapes.All.Count = 0 Then p.Delete End If If ActiveDocument.Pages.Count = 1 Then Exit Sub End If Next pEnd Sub
Sub MoveToLayer1() Dim shp As ShapeFor Each shp In ActiveLayer.Shapes shp.Layer = ActivePage.Layers("Layer 1") NextActiveWindow.RefreshEnd Sub