Microsoft Excel

Excel und VBA: Formeln, Programmierung, Lösungen

Die Excel/VBA-Beispiele

Thema

Zwei Tabellen wechselseitig ändern

Gruppe

Change

Problem

Wie kann ich Eintragungen in der einen automatisch in der anderen Tabelle anzeigen lassen? Ein zusätzliches Problem ist, daß die eine Tabelle ein Auszug der anderen ist, d.h. sie hat nur einen Teil der Spalten der ersten Tabelle.

Lösung
Geben Sie den Ereigniscode in das Klassenmodul des Arbeitsblattes ein.

ClassModule: Tabelle2

Private Sub Worksheet_Change(ByVal Target As Range)
   Dim iCol As Integer
   iCol = Target.Column
   If iCol <> 1 And iCol <> 4 And iCol <> 7 Then Exit Sub
   Call Eintragen(Me, Target.Row, Target.Column)
End Sub

ClassModule: Tabelle3

Private Sub Worksheet_Change(ByVal Target As Range)
   Dim iCol As Integer
   iCol = Target.Column
   If iCol <> 1 And iCol <> 2 And iCol <> 3 Then Exit Sub
   Call Eintragen(Me, Target.Row, Target.Column)
End Sub

StandardModule: basMain

Sub Eintragen(wks As Worksheet, iRow As Integer, iCol As Integer)
   Dim wksA As Worksheet
   If wks.Name = "Tabelle1" Then
      Set wksA = Worksheets("Tabelle2")
   Else
      Set wksA = Worksheets("Tabelle1")
   End If
   Select Case wks.Name
      Case "Tabelle2"
         Select Case iCol
            Case 1
               wksA.Cells(iRow, 1).Value = wks.Cells(iRow, iCol).Value
            Case 4
               wksA.Cells(iRow, 2).Value = wks.Cells(iRow, iCol).Value
            Case 7
               wksA.Cells(iRow, 3).Value = wks.Cells(iRow, iCol).Value
         End Select
      Case Else
         Select Case iCol
            Case 1
               wksA.Cells(iRow, 1).Value = wks.Cells(iRow, iCol).Value
            Case 2
               wksA.Cells(iRow, 4).Value = wks.Cells(iRow, iCol).Value
            Case 3
               wksA.Cells(iRow, 7).Value = wks.Cells(iRow, iCol).Value
         End Select
   End Select
End Sub