Ok, nun kommt der Punkt an dem du ggf. noch mal etwas präziser erläutern müsstest wie genau der Ablauf ausschaut.
Soweit ich dich verstanden habe, schaut das bei dir irgendwie so aus:
|
Seg. 1 |
Seg. 2 |
Seg. 3 |
… |
Seg. 70 |
zielwert |
3 |
5 |
7 |
… |
60 |
formel |
2,0000 |
-15,0000 |
-30,0000 |
… |
-160,0000 |
|
|
|
|
|
|
Wert s |
|
|
|
… |
|
Jetzt tippst du wohl den Zielwert von Segment 1 ein (hier die 3, Zelle B62) und das Makro soll daraufhin von allen Segmenten (Seg. 1 eingeschlossen) den Wert s bestimmen.
Frage: Wirkt sich der Wert s von Seg. 1 auf den Zielwert von Seg. 2 aus (sprich steht da ne Formel drin)?
Allgemein gesagt könnte es aber schon so funktionieren:
(hier wird davon ausgegangen das die einzelnen Segment-Werte (wie oben gezeigt) unterbrechungsfrei von links nach rechts angeordnet sind)
' Dieser Quellcode steht im Tabellenblatt mit den Werten zu jedem Segment
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Const C_START_ADDR As String = "B62"
Dim rngCell As Excel.Range
Set rngCell = Intersect(Range(C_START_ADDR), Target)
If Not rngCell Is Nothing Then
On Error GoTo SafeExit
Application.EnableEvents = False
Do Until Trim$(rngCell.Value) = ""
Call Cells(63, rngCell.Column).GoalSeek(Goal:=Cells(62, rngCell.Column), ChangingCell:=Cells(65, rngCell.Column))
Set rngCell = rngCell.Offset(0, 1)
Loop
SafeExit:
If Err.Number <> 0 Then Call MsgBox(Err.Description, vbCritical, "Fehler " & Err.Number)
Application.EnableEvents = True
End If
End Sub
Anmerkung: Dies ist nur eine von sicherlich vielen Möglichkeiten es zu implementieren.
Gruß
|