Append many documents in a new one

SupportCommunity Automation and VBA Append many documents in a new one

Ansicht von 5 Beiträgen - 1 bis 5 (von insgesamt 5)
  • Autor
    Beiträge
  • #12419

    Hi,
    Is there a way in VBA to append documents? (or pages) In Flexpro, I can open an empty document and, with drag and drop, I insert another existing document in the new one. It is added at the end of the open document. How may I do that in VBA?

    For example, in my application, I got a lot of small “report_x” document. I want to create a new document named “GlobalReport” wich is the sum of all the others document. After doing this, I’ll be able to edit the pages number of “GlobalReport” and print it alone.

    Thanks!

    #8100

    Hi,
    Is there a way in VBA to append documents? (or pages) In Flexpro, I can open an empty document and, with drag and drop, I insert another existing document in the new one. It is added at the end of the open document. How may I do that in VBA?

    For example, in my application, I got a lot of small “report_x” document. I want to create a new document named “GlobalReport” wich is the sum of all the others document. After doing this, I’ll be able to edit the pages number of “GlobalReport” and print it alone.

    Thanks!

    #8685
    Bernhard KantzBernhard Kantz
    Moderator

    In FlexPro there is no method to append a document to another document.

    But there is the possibility to select the shapes of the document. Then you can use the Copy and the Paste method.

    Example:

    
        Dim oSourceDoc As Document
        Dim oDestDoc As Document
        Dim i As Integer
        
        Set oSourceDoc = ActiveDatabase.RootFolder.Object("Doc1", fpObjectTypeDocument)
        Set oDestDoc = ActiveDatabase.RootFolder.Object("Doc2", fpObjectTypeDocument)
    
        Dim oPage As Shapes
        Set oPage = oSourceDoc.Pages(1)
        For i = 1 To oPage.Count
            oSourceDoc.Select
            oSourceDoc.Selection.Collapse
            oPage.Item(i).Select
            oSourceDoc.Selection.Copy
            oDestDoc.Select
            oDestDoc.Selection.Paste
            oDestDoc.Selection.Collapse
        Next i
    

    support@weisang.com

    #8686

    Thanks for the code! It works, but I had to add these lines :

            oSourceDoc.Select
            oSourceDoc.Open = True
            oSourceDoc.Selection.Collapse
            oPage.Item(i).Select
            oSourceDoc.Selection.Copy
            oDestDoc.Select
            oDestDoc.Open = True
            oDestDoc.Selection.Paste
            oDestDoc.Selection.Collapse

    Otherwise, the operations .Collapse and .Paste couldn’t work when the documents are closed.

    Also, this code copies the shapes in the first page of my document. Suppose I add a new page in the document

    Dim oNewPage As Shapes
    Set oNewPage = oSourceDoc.pages.Add

    How can I select the new page so the shape will be copied in it ?

    Thanks

    #8687
    Bernhard KantzBernhard Kantz
    Moderator

    You can use the methods NextPage and PreviousPage of a DocObjectSelection object.

    
    oDestDoc.Selection.PreviousPage
    oDestDoc.Selection.NextPage
    

    support@weisang.com

Ansicht von 5 Beiträgen - 1 bis 5 (von insgesamt 5)
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.