AW: Berechnung mit 3 variablen Spalten
21.07.2004 13:43:24
Klaus
Ich glaube, das Prinzip deiner Formel hab ich verstanden.
Auf meine Tabelle umgesetzt mit den für mich passenden Formeln sieht das so aus:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column >= 4 And Target.Column <= 6 Then
' Prüfen ob eine Zelle leer ist
If WorksheetFunction.CountBlank(Range(Cells(Target.Row, 4), Cells(Target.Row, 6))) = 1 Then
' Falls ja, welche Zelle ist leer
Dim Zelle As Range
For Each Zelle In Range(Cells(Target.Row, 4), Cells(Target.Row, 6))
If Zelle = "" Then Exit For
Next Zelle
Select Case Target.Column
' Formel für Spalte D
Case 4: Zelle.Formula = "=B" & Target.Row & "-E" & Target.Row & "-F" & Target.Row
' Formel für Spalte E
Case 5: Zelle.Formula = "=B" & Target.Row & "-D" & Target.Row & "-F" & Target.Row
' Formel für Spalte F
Case 6: Zelle.Formula = "=B" & Target.Row & "-D" & Target.Row & "-E" & Target.Row
End Select
End If
End If
End Sub
Wenn ich die entstehenden FALSCHEN Formeln bei mir zu interpretieren versuche, komme ich zu dem Schluss, dass mir das "Select Case Target.Column" NICHT die Spalte liefert, die von den dreien noch leer ist, sondern diejenige, die ich zuletzt ausgefüllt habe.
Wenn ich in der Select-Anweisung die noch leere Zelle ansprechen würde, müsste das ganze hinhauen - so wie es jetzt ist, ergibt sich die entstehende Formel aus der Reihenfolge, in der ich die anderen beiden Werte eingebe.
Eine Idee wie ich in die Case-Abfrage den Bezug zur noch leeren Zelle herstellen kann?
Klaus