Wechselseitige Syncronisierung zweier Tabellen (VBA)

Josef, Donnerstag, 09.07.2020, 10:09 (vor 29 Tagen)

Hallo an alle,

ich bin neu mit VBA unterwegs und bräuchte mal eure Hilfe.
Ich habe zwei unterschiedliche Arbeitsmappen/Dateien in denen aber jeweils eine Tabelle mit dessen Inhalten und idealerweise der Formatierungen (Verbundene Zellen, etc.) gleich sein sollen.
Nun kommt die große Problemstellung: Ich muss in beiden Arbeitsmappen an der Tabelle (mit Textinhalt, Datum, Zahlen) arbeiten können. Das heißt, dass sich die Tabellen in beide Richtungen/Arbeitsmappen synchronisiren müssen.
Hierbei muss evtl. auch der Zeitpunkt der Synchronisierung (Speichervorgang?) beachtet werden damit es zu keinen Konflikten kommt!?

Ich habe mal aus unterschiedlichen Beiträgen versucht erste Ansätze zu basteln was aber leider nicht funktioniert:

 
'Code für Datei 1 "AM1_test.xlsm"
 
Option Explicit
 
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim ext_wb As Workbook
    If Not Intersect(Target, Columns(1:19)) Is Nothing Then
        With Application
            .EnableEvents = False
            .ScreenUpdating = False
        End With
        Set ext_wb = Workbooks.Open(ThisWorkbook.Path & "\AM2_test.xlsm")
        ext_wb.Worksheets("offene Punkte").Range(Target.Address) = Target.Value
        Call ext_wb.Close(SaveChanges:=True)
        Set ext_wb = Nothing
        With Application
            .EnableEvents = True
            .ScreenUpdating = True
        End With
    End If
End Sub
 
 
'Code für Datei 2 "AM2_test.xlsm"
 
Option Explicit
 
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim ext_wb As Workbook
    If Not Intersect(Target, Columns(1:19)) Is Nothing Then
        With Application
            .EnableEvents = False
            .ScreenUpdating = False
        End With
        Set ext_wb = Workbooks.Open(ThisWorkbook.Path & "\AM1_test.xlsm")
        ext_wb.Worksheets("offene Punkte").Range(Target.Address) = Target.Value
        Call ext_wb.Close(SaveChanges:=True)
        Set ext_wb = Nothing
        With Application
            .EnableEvents = True
            .ScreenUpdating = True
        End With
    End If
End Sub


Ich habe den Code bei der jeweiligen Arbeitsmappe unter "VBAProjekt (Dateiname.xlsm)" eingefügt.
Zum Testen habe ich eine der Dateien geöffnet, eine Änderung in der Tabelle "offene Punkte" durchgeführt und gespeichert.
Leider ohne programmseitige Reaktion bzw. Änderung in der anderen Datei.

Ich bin Anfänger mit VBA. Da ich mich hier noch sehr unsicher bewege, benötige ich bitte genauere Anweisungen als nur eine Codezeile oder den Verweis auf einen anderen Befehl. Danke für euer Verständnis!

Erkennt jemand den Fehler oder hat eine Idee?

Mit Dank im Vorraus
Gruß Josef


gesamter Thread:

 RSS-Feed dieser Diskussion

powered by my little forum