Forum Discussion

SCF0086's avatar
SCF0086
Copper Contributor
Feb 05, 2024

How to sync two worksheets

Hi, I am looking for a way to save myself repeating the same task 100x by syncing several worksheets to the source worksheet, so that if I delete or add column's and rows the same happens on the other worksheets. 

 

I know how to have cell values synced, I just need to know how to have row/column additions/deletions also synced it would save me a lot of time.

 

thank you in advance

  • NikolinoDE's avatar
    NikolinoDE
    Gold Contributor

    SCF0086 

    If you want to sync not only cell values but also row/column additions/deletions across multiple worksheets, you can consider using Excel Tables (ListObjects). Excel Tables are dynamic ranges that automatically expand or contract as you add or delete rows and columns, making them a great choice for syncing data.

    Here is a step-by-step guide:

    1. External Data Connections:
      • You can set up external data connections to pull data from a master worksheet into other worksheets.
      • Changes in the master worksheet can be updated in the connected worksheets.

    Remember that features and capabilities can evolve with newer versions of Excel, and it's possible that Microsoft may introduce new features in subsequent releases. Always check the documentation or updates specific to your Excel version for the latest information.

     

    Syncing Row/Column Additions and Deletions Using Excel Tables:

    1. Convert Your Data Range to an Excel Table:
      • Select the range of cells in your source worksheet.
      • Go to the "Insert" tab and click on "Table" (or press Ctrl + T).
      • Ensure that the "Create Table" dialog box correctly identifies the range and check the box if your table has headers.
    2. Name the Table:
      • With the table selected, go to the "Table Design" tab.
      • In the "Table Name" field, give your table a name.
    3. Repeat for Other Worksheets:
      • Copy the original table (Ctrl+C).
      • Go to another worksheet and paste the table (Ctrl+V).
      • Repeat this step for all worksheets you want to sync.
    4. Syncing Data:
      • If you make changes to the structure of the original table (add/delete rows/columns), those changes will automatically reflect in all other tables.

    Important Considerations:

    • Table Name: Ensure each table has the same name on all worksheets. This is important for proper syncing.
    • Cell References: Formulas referring to the table on one sheet may need adjustments if the table name is not the same on the other sheets.
    • Compatibility: Excel Tables are available in Excel 2016 and later versions. If you are using an earlier version, you might consider using Named Ranges or a VBA solution.

     

    VBA (Optional):

    If you are comfortable with VBA, you can also create a more customized solution using VBA to handle the syncing process. However, using Excel Tables is often a simpler and user-friendly approach.

    Here's a basic example of VBA code for syncing tables:

    Vba Code is untested, please backup your file.

    Sub SyncTables()
        Dim ws As Worksheet
        Dim originalTable As ListObject
    
        ' Set the original table
        Set originalTable = Worksheets("SourceSheet").ListObjects("TableName")
    
        ' Loop through other sheets
        For Each ws In ThisWorkbook.Worksheets
            If ws.Name <> "SourceSheet" Then
                ' Delete existing table
                On Error Resume Next
                ws.ListObjects("TableName").Delete
                On Error GoTo 0
    
                ' Copy original table to other sheets
                originalTable.DataBodyRange.Copy Destination:=ws.Range("A1")
    
                ' Rename the table
                ws.ListObjects(1).Name = "TableName"
            End If
        Next ws
    End Sub

    Remember to replace "SourceSheet" and "TableName" with the actual names of your source sheet and table. Run this macro to sync the tables on all sheets. The text, steps and code were created with the help of AI.

     

    My answers are voluntary and without guarantee!

     

    Hope this will help you.

    Was the answer useful? Mark as best response and Like it!

    This will help all forum participants.

    • c_b_wright's avatar
      c_b_wright
      Copper Contributor

      NikolinoDE while your solution is very detailed, it does not work at all.  Simply copying (Ctrl-C) and pasting (Ctrl-V) will not establish any sort of link between the source table and the subsequent tables.  Secondly, Excel simply does not allow tables to have the same Name in the same Workbook.  Thirdly, no changes will automatically propegate to other tables even if linked unless you have automatic refresh on and set to a reasonable timer (I believe it defaults to 60 minutes refresh)

      • NikolinoDE's avatar
        NikolinoDE
        Gold Contributor

        c_b_wright 

        You’re correct that simply copying and pasting a table in Excel will not establish a live link between the source table and the pasted tables, and that Excel doesn’t allow tables in the same workbook to share the same name. For syncing rows, columns, and data across multiple worksheets in real-time, you’ll need to approach the problem differently. Here are some alternative methods:

        1. Using Excel's Built-in Linking Capabilities

        While Excel doesn’t natively support syncing structural changes like adding or deleting rows/columns, you can still link data cells from one worksheet to another. For structure changes, you may need to manage them manually or use VBA (see the VBA solution below).

        Linking Cells:

        • To link cells between worksheets, start by selecting the cell in the destination worksheet.
        • Type = and then navigate to the source worksheet and select the cell you want to link to.
        • Press Enter. The destination cell will now dynamically reflect the value of the source cell.

        Managing Structural Changes:

        • For structural changes (like adding or deleting rows/columns), you would manually replicate these changes across your worksheets.

        2. VBA Solution for Syncing Rows/Columns Across Worksheets

        To automate syncing structural changes like adding or deleting rows/columns, you’ll need a VBA macro. Here's a VBA script that can help:

        Vba Code is untested backup your file first.

         

        Sub SyncWorksheets()
            Dim wsSource As Worksheet
            Dim ws As Worksheet
            Dim lastRow As Long, lastCol As Long
            Dim sourceRange As Range
            
            ' Set your source worksheet here
            Set wsSource = ThisWorkbook.Sheets("SourceSheet")
            
            ' Find the last row and column in the source sheet
            lastRow = wsSource.Cells(wsSource.Rows.Count, 1).End(xlUp).Row
            lastCol = wsSource.Cells(1, wsSource.Columns.Count).End(xlToLeft).Column
            
            ' Define the range to copy
            Set sourceRange = wsSource.Range(wsSource.Cells(1, 1), wsSource.Cells(lastRow, lastCol))
            
            ' Loop through each worksheet to sync
            For Each ws In ThisWorkbook.Sheets
                If ws.Name <> wsSource.Name Then
                    ' Clear existing data
                    ws.Cells.Clear
                    ' Copy data from the source sheet
                    sourceRange.Copy ws.Cells(1, 1)
                End If
            Next ws
        End Sub

         

        3. Consider Using Power Query for Dynamic Linking

         

        Power Query in Excel can be used to create dynamic links between sheets:

        • Step 1: Load your source table into Power Query.
        • Step 2: From the Power Query Editor, you can create a connection-only query.
        • Step 3: Load the query data into other sheets. When the source table is updated, refresh the queries to sync the data.

        4. External Data Connections (Advanced)

        If your data is stored externally (e.g., in a database), you can set up external data connections in Excel. This allows all worksheets to pull from a central source and update dynamically.

        Important Considerations:

        • VBA Limitations: The VBA script will need to be rerun each time a structural change is made to the source sheet.
        • Manual Adjustments: You might still need to adjust cell references or formulas depending on the changes you make.

        These methods offer more dynamic syncing and updating capabilities, but each comes with its own set of requirements and limitations.

        The text, steps and the code were created with the help of AI.

         

        My answers are voluntary and without guarantee!

         

        Hope this will help you.

         

        Was the answer useful? Mark as best response and like it!

        This will help all forum participants.

Resources