Herbers Excel-Forum - das Archiv

Worksheet_Change auf 2 Zellen anwenden

Bild

Betrifft: Worksheet_Change auf 2 Zellen anwenden
von: Richard

Geschrieben am: 31.07.2008 12:25:53

Hallo VBA-Freaks,
könnt Ihr mir weiterhelfen, komme mal wieder nicht weiter.
Über nachfolgenden Code erreiche ich, dass bei Veränderung der Zelle A1, der neu eingetragene Wert in einer 2. Tabelle gesucht wird. Den dazugehörigen Referenzdaten zu dem Wert aus genannter Tabelle in den Spalte B-D, werden Variablen zugeordnet. Diese Variablen werden anschließend in der ersten Tabelle wieder eingelesen in die Zellen A3-A5. (Eigentlich ziemlich ähnlich der SVERWEIS-Formel)

Private Sub Worksheet_Change(ByVal Target As Range)
Dim vNew, vOld As Variant
Dim iRow As Integer
If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
vNew = Target.Value
Application.EnableEvents = False
On Error GoTo ERRORHANDLER
Application.Undo
vOld = Target.Value
Target.Value = vNew
With Worksheets("Tabelle2")
.Activate
iRow = .Cells(Rows.Count, 1).End(xlUp).Row
.Range("A1:A" & iRow).Select
Selection.Find(What:=Target.Value, LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False, _
SearchFormat:=False).Activate
plA = .Cells(ActiveCell.Row, 2).Value
plB = .Cells(ActiveCell.Row, 3).Value
plC = .Cells(ActiveCell.Row, 4).Value
End With
Range("A3").Value = plA
Range("A4").Value = plB
Range("A5").Value = plC
ERRORHANDLER:
Application.EnableEvents = True
End Sub


Bis hierher ist mir noch alles klar.
Jetzt möchte ich jedoch, dass wenn die Zelle B1 verändert wird, dass dieser neue Wert als Multiplikator dient. D.h. Die Referenzwerte aus A3, A4 u. A5 sollen mit dem eingegeben Wert in B1 multipliziert werden. Und das Ergebnis soll wieder in die gleichen Zellen geschrieben werden. (e.g. A3 = A3 * B1)
Mein Problem:
Ich kann zwar in die Worksheet_Change-Eigenschaft beim Punkt "Intersect(Target, Range(BEREICH))" für den Bereich "A1:B1" setzten, aber dann behandelt er beide Zellen mit gleicher Aufgabe. Was bedeuten würde, dass er den Wert der Zelle B1 auch in der Tabelle2 suchen würde.
Ich hoffe, ich habe mich verständlich ausgedrückt.
Mit freundlichen Grüßen
Richard

Bild

Betrifft: AW: Worksheet_Change auf 2 Zellen anwenden
von: mpb

Geschrieben am: 31.07.2008 12:37:35
Hallo Richard,
ohne den Code im einzelnen nachvollzogen zu haben:
Schreibe statt
If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
If Not Intersect(Target, Range("A1")) Is Nothing Then
'Dein bisheriger Code
End If
If Not Intersect(Target, Range("B1")) Is Nothing Then
'Dein Code für den neuen "Fall"
End If
Gruß
Martin

Bild

Betrifft: AW: Worksheet_Change auf 2 Zellen anwenden
von: Richard
Geschrieben am: 31.07.2008 13:24:07
Danke Martin!
Hat wunderbar geklappt.

 Bild
Excel-Beispiele zum Thema "Worksheet_Change auf 2 Zellen anwenden"
Makros in Abhängigkeit vom Zellennamen aufrufen Zellen auf Kommentar überprüfen
Spalten bedingt summieren und Zellen formatieren Text aus Textbox in Zellen aufteilen
Zellen vergleichen und markieren Zählen formatierter Zellen
Daten aus Textdatei gezielt in Zellen übernehmen Zellen verbinden und trennen
Zellen bei Minuswerten schraffieren Zeilen oberhalb der markierten Zellen einfügen