Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Feldänderung soll andere Felder ändern

Forumthread: Feldänderung soll andere Felder ändern

Feldänderung soll andere Felder ändern
11.11.2013 08:41:03
Christopher
Hallo Allerseits,
ich habe ein Dokument mit mehreren unterschiedlich langen Tabellen. Ich will nun, dass wenn sich in einer beliebigen dieser Tabellen der Wert eines Feldes in Spalte D oder E durch Usereingabe ändert, in allen anderen Tabellen Spalte D und E der entsprechenden Zeile angepasst wird. Welche Zeile anzupassen ist, kann man an Spalte B erkennen.
Also: suche bei einer Änderung eines Feldes in Spalte D oder E nach der entsprechenden Zeile in den anderen Tabellenblättern und setze dort den Wert in C oder D auf den geänderten Wert.
Ich habe mir eine kleine VBA-Funktion geschrieben, diese funktioniert nur leider nicht:

Private Sub Worksheet_Change(ByVal Target As Range)
For a = 1 To Target.UsedRange.Rows.Count
'Wenn sich was in D und E aendert dann suche in den anderen Tabellen nach dem Vorkommen in B-a
If Target.Range("D" & a) Or Target.Range("E" & a) Then
'Wenn B a gefüllt ist ...
If Not IsEmpty(Target.Range("B" & a)) Then
' ... dann durchsuche in allen Arbeitsblätter...
For i = 1 To ThisWorkbook.Worksheets.Count
' ...alle Zeilen
For b = 1 To ThisWorkbook.Worksheets(i).UsedRange.Rows.Count
' Wenn ein Eintrag gefunden wird bei dem der Identifier mit dem Identifier des geä _
nderten Wertes übereinstimmt...
If Target.Range("B" & a).Value = ThisWorkbook.Worksheets(i).Range("B" & b).Value Then
'... dann passe den Wert der gefundenen ZEile entsprechend der Änderung an.
ThisWorkbook.Worksheets(i).Range("D" & b).Value = Target.Range("D" & a).Value
ThisWorkbook.Worksheets(i).Range("E" & b).Value = Target.Range("E" & a).Value
End If
Next b
Next i
End If
End If
Next a
End Sub

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Feldänderung soll andere Felder ändern
11.11.2013 11:28:29
fcs
Hallo Christopher,
hier ein Makro das eine entsprechende Aktualisierung ausführt.
Das Makro wird aber nicht unter den einzelnen Tabellenblättern eingefügt, sondern unter "DieseArbeitsmappe"
Gruß
Franz
'Makro im VBA-Editor unter Modul "DieseArbeitsmappe" der Datei
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Zelle As Range, rngAuswahl As Range
Dim varIdentifier, rngIdent As Range, addr1 As String
Dim wks As Worksheet
'Prüfen, ob Änderung in Spalten D und/oder E
Set rngAuswahl = Application.Intersect(Sh.Range("D:E"), Target)
If Not rngAuswahl Is Nothing Then
With Application
.EnableEvents = False
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With
'geänderte Zellen abarbeiten
For Each Zelle In rngAuswahl
'Identifier merken
varIdentifier = Sh.Cells(Zelle.Row, 2).Value 'Wert in Spalte B
If varIdentifier  "" Then
'alle Tabellenblätter abarbeiten
For Each wks In Me.Worksheets
If wks.Name  Sh.Name Then
With wks
'identifier in Spalte B suchen
Set rngIdent = .Columns(2).Find(what:=varIdentifier, LookIn:=xlValues, _
lookat:=xlWhole)
If Not rngIdent Is Nothing Then
addr1 = rngIdent.Address
Do
.Cells(rngIdent.Row, 4) = Sh.Cells(Zelle.Row, 4)
.Cells(rngIdent.Row, 5) = Sh.Cells(Zelle.Row, 5)
'Suche wiederholen
Set rngIdent = .Columns(2).FindNext(rngIdent)
Loop Until rngIdent.Address = addr1
End If
End With
End If
Next wks
End If
Next Zelle
With Application
.EnableEvents = True
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
End With
End If
End Sub

Anzeige
AW: Feldänderung soll andere Felder ändern
11.11.2013 11:47:41
Christopher
Hallo Franz,
vielen Dank. Der Code funktioniert.
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige