Microsoft Excel

Herbers Excel/VBA-Archiv

Worksheet_Change auf 2 Zellen anwenden

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

  

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


  

Betrifft: AW: Worksheet_Change auf 2 Zellen anwenden von: Richard
Geschrieben am: 31.07.2008 13:24:07

Danke Martin!

Hat wunderbar geklappt.


 

Beiträge aus den Excel-Beispielen zum Thema "Worksheet_Change auf 2 Zellen anwenden"