Daten zweier Tabellen anpassen mit VBA
Hallo Liebes Forum
Ich habe ein Problem bei dem ich hoffe dass ihr mir weiterhelfen könnt, ich bin echt am ende
Also ich habe 2 Excel Tabellen. Die erste Tabelle eine die jeden monat gezogen wird und dann eine Mastertabelle. Mittels Makro passe ich die mastertabelle an (das gleiche wie ein sverweis da in der Matertabelle Spalten sind die in der erstem Tabelle nicht drin sind). Das klappt soweit gut.
Aber wenn ich der ersten Tabelle ein neuer eintrag erfasst wird merkt das makro das nicht, das gleiche ist wenn in der ersten Tabelle ein eintrag gelöscht wird.
Ich denke schon die ganze zeit nach wie ich das lösen könnte.
kann mir jemand helfen bitte?
LG Hoursch
Ich habe ein Problem bei dem ich hoffe dass ihr mir weiterhelfen könnt, ich bin echt am ende
Also ich habe 2 Excel Tabellen. Die erste Tabelle eine die jeden monat gezogen wird und dann eine Mastertabelle. Mittels Makro passe ich die mastertabelle an (das gleiche wie ein sverweis da in der Matertabelle Spalten sind die in der erstem Tabelle nicht drin sind). Das klappt soweit gut.
Aber wenn ich der ersten Tabelle ein neuer eintrag erfasst wird merkt das makro das nicht, das gleiche ist wenn in der ersten Tabelle ein eintrag gelöscht wird.
Ich denke schon die ganze zeit nach wie ich das lösen könnte.
kann mir jemand helfen bitte?
LG Hoursch
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 3465814189
Url: https://administrator.de/forum/daten-zweier-tabellen-anpassen-mit-vba-3465814189.html
Ausgedruckt am: 07.04.2025 um 20:04 Uhr
8 Kommentare
Neuester Kommentar
Hi,
zeig mal das Makro welches Du bereits hast.
Hört sich für mich so an als benötigst Du ein Worksheet_change Ereignis.
Mit dem Ereignis kenne ich mich zwar nicht sooooo gut aus aber ich kann mal drüber schauen.
Ansonsten weiß ich nicht wie viele VBA Profis hier im Forum vertreten sind, würde vermuten das Dir im https://office-loesung.de/p/ Forum besser geholfen werden kann. Das ist ja da drauf spezialisiert.
Solltest Du Deine Frage da auch posten, solltest Du die Beiträge miteinander verlinken (Crossposting)
VG
zeig mal das Makro welches Du bereits hast.
Hört sich für mich so an als benötigst Du ein Worksheet_change Ereignis.
Mit dem Ereignis kenne ich mich zwar nicht sooooo gut aus aber ich kann mal drüber schauen.
Ansonsten weiß ich nicht wie viele VBA Profis hier im Forum vertreten sind, würde vermuten das Dir im https://office-loesung.de/p/ Forum besser geholfen werden kann. Das ist ja da drauf spezialisiert.
Solltest Du Deine Frage da auch posten, solltest Du die Beiträge miteinander verlinken (Crossposting)
VG
Servus @Hoursch, willkommen auf Administrator.de!
Grüße Uwe
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Sub SyncTables()
Dim wsMaster As Worksheet, wsData As Worksheet, rngMaster As Range, rngData As Range, f As Range, cell As Range, r As Long
' Master sheet
Set wsMaster = Sheets("Master")
' Sheet mit aktuellen Daten
Set wsData = Sheets("ADExtract")
' Suchbereich für Mastersheet ermitteln
Set rngMaster = wsMaster.Range("A3:A" & wsMaster.Cells(Rows.Count, "A").End(xlUp).Row)
' Suchbereich für Sheet mit aktuellen Daten ermitteln
Set rngData = wsData.Range("A1:A" & wsData.Cells(Rows.Count, "A").End(xlUp).Row)
' für jede zeile in den neuen Daten
For Each cell In rngData
' Finde die Daten in der Mastertabelle
Set f = rngMaster.Find(cell.Value, LookIn:=xlValues)
' Wenn es den Eintrag nicht gibt
If f Is Nothing Then
' Eintrag gibt es noch nicht, definiere die nächste leere Zeile in der Mastertabelle
Set f = wsMaster.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
' Füge neuen Wert ein
f.Value = cell.Value
End If
' füge Daten aus Spalte B-H des neuen Sheets in Zeile in Spalte C-I des Masters ein
wsMaster.Cells(f.Row, "C").Resize(1, 7).Value = cell.Offset(0, 1).Resize(1, 7).Value
' füge Daten aus Spalte K-N des neuen Sheets in Zeile in Spalte I-M des Masters ein
wsMaster.Cells(f.Row, "J").Resize(1, 4).Value = cell.Offset(0, 10).Resize(1, 4).Value
' füge Daten aus Spalte O-W des neuen Sheets in Zeile in Spalte O-W des Masters ein
wsMaster.Cells(f.Row, "O").Resize(1, 9).Value = cell.Offset(0, 14).Resize(1, 9).Value
Next
' Lösche Zeilen aus dem Master wenn sie nicht in den aktuellen Daten vorhanden sind
With wsMaster
For r = rngMaster.SpecialCells(xlCellTypeLastCell).Row To 3 Step -1
If rngData.Find(.Cells(r, 1).Value, LookIn:=xlValues) Is Nothing Then
.Rows(r).Delete
End If
Next
End With
End Sub
Serie: Windows 11
Daten zweier Tabellen anpassen mit VBA8