Страницы: 1
RSS
Синхронизация 2 таблиц на 2 разных листах эксель, Необходимо связать 2 таблицы, которые автоматически будут меняться при изменении данных в одной из них
 
Здравствуйте! не могли бы помочь с макросом для ексель пожалуйстаа. Нужно чтоб две таблицы с 2 одинаковыми столбцами синхронизировались, чтоб при изменении данных в одной из таблиц сразу менялись эти данные во второй таблице, и обратно при изменении данных во второй таблице менялись в первой таблице. И чтоб фильтровались по значению среза. В прикрепленных файлах загрузила эксель файл, в котором нужно проводить эти операции. 1 таблица находится на 1Листе, срез и 2 Таблица находится на 2 листе
 
Это в стандартный модуль.
Код
Option Explicit

Public Sub myWorksheet_Change(Target As Range)
    Dim sh As Worksheet
    Dim st As Worksheet
    Set sh = Target.Parent
    
    Dim tb As ListObject
    Dim tt As ListObject
    On Error Resume Next
    Set tb = sh.ListObjects(1)
    
    Set st = sh.Parent.Sheets(3 - sh.Index)
    Set tt = st.ListObjects(1)
    On Error GoTo 0
    If Not tb Is Nothing Then
        If Not tt Is Nothing Then
            If Not Intersect(Target, tb.DataBodyRange) Is Nothing Then
                Dim Application_Calculation As Long
                Application_Calculation = Application.Calculation
                Application.Calculation = xlCalculationManual
                Application.EnableEvents = False
                
                Dim dy As Long: dy = tt.Range.Row - tb.Range.Row
                Dim dx As Long: dx = tt.Range.Column - tb.Range.Column
                
                Dim cl As Range
                Dim ct As Range
                For Each cl In Intersect(Target, tb.DataBodyRange)
                    Set ct = st.Cells(cl.Row + dy, cl.Column + dx)
                    ct.FormulaR1C1 = cl.FormulaR1C1
                Next
                
                Application.EnableEvents = True
            End If
        End If
    End If
End Sub
Это в модули Лист1 и Лист2.
Код
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    myWorksheet_Change Target
End Sub
 
Здравствуйте!!! огромное спасибо за макрос!

синхронизацию по этому макросу смогла сделать, только вот для фильтрации не могли бы написать тоже...чтоб при выборе на срезе одного реагента( на 2 листе) в таблице отфильтровался этот реагент.

и к сожалению, после добавления этого макроса, формулы(лист6) которые берут инфо из 1 таблицы, перестали работать, не могу понять почему((
Изменено: a.zaini - 05.11.2023 20:17:35
Страницы: 1
Наверх