Anzeige
Archiv - Navigation
1864to1868
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

2 Tabellen synchronisieren

2 Tabellen synchronisieren
28.01.2022 10:17:46
Tim
Hallo Liebe Excler,
Ich habe folgendes Problem. Ich habe eine Excel-Datei, in die ich in einem Arbeitsblatt in einer Tabelle neue Daten hinzufüge. Dabei füge ich die neue Zeile immer ganz oben ein (Rechtsklick - Zeile Einfügen)
Diesen neuen Datensatz möchte ich dann automatisch in der anderen Datei auch haben. Dabei reicht es mir wenn ich die andere Datei öffne und auf aktualisieren klicke.
Das Problem an der Geschichte: Die Tabelle der 2. Tabelle hat mehr Spalten, da dort noch Zusatzinfos zum Datensatz, welchen ich in der 1. Tabelle eingetragen habe, hinzugefügt werden. Bei allen meinen Lösungsversuchen wurden leider die Extra Spalten der 2. Tabelle nicht mitverschoben, sodass durch den neu übernommenen Datensatz diese Zusatzinfos in den Extra spalten beim falschen Datensatz waren...
Ich habe mal eine Datei mit 2 Beispielblättern eingefügt um mein Problem zu verdeutlichen. Ich bin dankbar für jede Hilfe!
https://www.herber.de/bbs/user/150739.xlsx
Viele Grüße,
Tim

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 2 Tabellen synchronisieren
28.01.2022 11:12:44
Rudi
Hallo,
teste mal:

Sub sync()
Dim rngC As Range, vntKey, vntValue
Dim objTab1 As Object, objTab2 As Object
Dim oOBJ
Dim lRow As Long
Set objTab1 = CreateObject("scripting.dictionary")
Set objTab2 = CreateObject("scripting.dictionary")
With Sheets("Tabelle1")
For Each rngC In .Range(.Cells(5, 1), .Cells(Rows.Count, 1).End(xlUp))
vntKey = Application.Transpose(Application.Transpose(rngC.Resize(, 5)))
vntKey = Join(vntKey, "|")
vntValue = Application.Transpose(Application.Transpose(rngC.Resize(, 8)))
vntValue = Join(vntValue, "|")
objTab1(vntKey) = vntValue
Next rngC
End With
With Sheets("Tabelle2")
For Each rngC In .Range(.Cells(5, 1), .Cells(Rows.Count, 1).End(xlUp))
vntKey = Application.Transpose(Application.Transpose(rngC.Resize(, 5)))
vntKey = Join(vntKey, "|")
vntValue = Application.Transpose(Application.Transpose(rngC.Resize(, 8)))
vntValue = Join(vntValue, "|")
objTab2(vntKey) = vntValue
Next rngC
End With
For Each oOBJ In objTab1
If objTab2.exists(oOBJ) Then
objTab1(oOBJ) = objTab2(oOBJ)
End If
Next oOBJ
lRow = 5
For Each oOBJ In objTab1
vntValue = Split(objTab1(oOBJ), "|")
Sheets("Tabelle2").Cells(lRow, 1).Resize(, UBound(vntValue) + 1) = vntValue
lRow = lRow + 1
Next oOBJ
End Sub
Geht aber nur von Tab1 nach Tab2.
Gruß
Rudi
Anzeige
AW: 2 Tabellen synchronisieren
28.01.2022 11:46:23
Tim
Hallo Rudi,
Vielen Dank erstmal!
Funktioniert das denn auch ohne VBA? Und falls nein, funktioniert dein Code auch bei 2 unterschiedlichen Dateien?
Viele Grüße,
Tim
AW: 2 Tabellen synchronisieren
28.01.2022 21:33:05
Rudi
Hallo,
1. möglicherweise mit Powerquery.Damit kenn ich mich aber nicht aus.
2. Ja. Dann müssen die Referenzen entsprechend angepasst werden.
Gruß
Rudi
AW: nachgefragt ...
29.01.2022 10:54:12
neopa
Hallo Tim,
... Deine Angaben sind zumindest für mich etwas missverständlich. Denn wenn Du den Datensatz Zeile 5 aus Blatt: Tabelle1 in Blatt Tabelle2 übernehmen willst, muss nichts "verschoben" werden. Oder soll jedoch der Transfer von Tabelle2 nach Tabelle1 erfolgen? Auch da muss nichts verschoben sondern nur Spalten ergänzt werden.
Weiter nachgefragt: Mit wie vielen Datensätzen ist denn ca. max zu rechnen und vor allem sollen auch Deine Kommentare mit übernommen werden? Im letzteren Fall ist weder eine Formellösung noch mW eine PowerQuery-Lösung möglich.
Gruß Werner
.. , - ...
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige