Worksheet_Change auf zwei Zellbereichen
19.11.2019 11:55:06
Marcel
ich habe folgendes Problem:
Ich möchte gerne eine Excel To-Do-Liste erstellen mit mehreren Datenblättern. Die Datenblätter beeinflussen sich teilweise gegenseitig. Dies soll bei Eintragungen in bestimmten Zellbereichen geschehen.
Nun möchte ich , dass aus Tabelle1 Zellinhalte in Tabelle2 kopiert werden und zwar dann, wenn ich in einer Zelle der Spalte J etwas eintrage. Mein Code ursrpünglicher Code dazu sah folgendermassen aus:
Die Worksheet_Change in Tabelle 1:
Private Sub Worksheet_Change(ByVal Target As Range)
Wert = Target.Row
If Intersect(Target, Range("J2:J500")) Is Nothing Then Exit Sub
Call Übertragung
End Sub
und im Modul 1:
Public Wert, Reihe As Integer
Public JCItem As Integer
Public MM As String
Public Produkt As String
Public Thema As String
Die Sub im Modul 1:
Sub Übertragung()
JCItem = Tabelle1.Cells(Wert, 1).Value
MM = Tabelle1.Cells(Wert, 4).Value
Produkt = Tabelle1.Cells(Wert, 5).Value
Thema = Tabelle1.Cells(Wert, 9).Value
Tabelle2.Range("A1").End(xlDown).Offset(1, 0).Value = JCItem
Tabelle2.Range("C1").End(xlDown).Offset(1, 0).Value = MM
Tabelle2.Range("D1").End(xlDown).Offset(1, 0).Value = Produkt
Tabelle2.Range("E1").End(xlDown).Offset(1, 0).Value = Thema
End Sub
Das haut auch bestens funktioniert.
Nun soll aber auch wenn eine Eintragung in einer Zelle der Spalte K gemacht wird Zellinhalte aus der Zeile in Tabelle 3 kopiert werden. Dazu habe ich den Code in Tabelle 1 angepasst und eine zusätzliche Sub im Modul 1 eingefügt:
Private Sub Worksheet_Change(ByVal Target As Range)
Wert = Target.Row
Spalte = Target.Column
If Spalte = 10 Then
If Intersect(Target, Range("J2:J500")) Is Nothing Then
Exit Sub
Else
Call Übertragung
End If
End If
If Spalte = 11 Then
If Intersect(Target, Range("K2:K500")) Is Nothing Then
Exit Sub
Else
Call Tooling
End If
End If
End Sub
Zweite Sub im Modul 1:
Sub Übertragung2()
JCItem = Tabelle1.Cells(Wert, 1).Value
MM = Tabelle1.Cells(Wert, 4).Value
Produkt = Tabelle1.Cells(Wert, 5).Value
Thema = Tabelle1.Cells(Wert, 9).Value
Tabelle5.Range("A1").End(xlDown).Offset(1, 0).Value = JCItem
Tabelle5.Range("C1").End(xlDown).Offset(1, 0).Value = MM
Tabelle5.Range("D1").End(xlDown).Offset(1, 0).Value = Produkt
Tabelle5.Range("E1").End(xlDown).Offset(1, 0).Value = Thema
End Sub
Das Ganze funktioniert für die erste Sub auch weiterhin in der zweiten Sub bekomme ich in dieser Zeile:
Tabelle5.Range("A1").End(xlDown).Offset(1, 0).Value = JCItem
folgende Meldung: "Laufzeitfehler 1004: Anwendungs- oder Objektdefinierter Fehler.
Kann mir jemand erklären warum?