Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
456to460
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
456to460
456to460
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Berechnung mit 3 variablen Spalten

Berechnung mit 3 variablen Spalten
21.07.2004 10:01:09
Klaus
Hallo,
es ist mir, denke ich, nicht ganz geglückt mein Anliegen sinnvoll in den Betreff zu packen... hier mein Problem:
- Gegeben sind Spalten A-D.
- Spalte A enthält einen eingegebenen Wert.
- Die Werte in den Spalten B-D ergeben aufsummiert den Wert in Spalte A.
- Von den Werten in B-D werden 2 eingegeben und der 3. berechnet sich aus den 2 eingegebenen.
- Das Problem ist: Es sollen nicht immer die gleichen 2 Felder von B-D ausgefüllt werden; in einem Fall werden z.B. B+D eingegeben und C soll sich berechnen, im anderen Fall sollen C+D eingegeben werden und B entsprechend berechnet.
Ist das möglich? Wenn ich alle 3 mit Formeln fülle habe ich ja Zirkelbezüge...
Gibt's eine Lösung für mein Problem? Hat jemand eine Idee?
Vielen Dank!
Klaus

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Berechnung mit 3 variablen Spalten
ChrisL
Hi Klaus
So einfach ist es nicht. Im Anhang mal einen Ansatz mit VBA. Sobald nur noch eine Spalte leer ist, wird eine Beispielformel eingetragen.
https://www.herber.de/bbs/user/8749.xls

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column > 1 And Target.Column <= 4 Then
' Prüfen ob eine Zelle leer ist
If WorksheetFunction.CountBlank(Range(Cells(Target.Row, 2), Cells(Target.Row, 4))) = 1 Then
' Falls ja, welche Zelle ist leer
Dim Zelle As Range
For Each Zelle In Range(Cells(Target.Row, 2), Cells(Target.Row, 4))
If Zelle = "" Then Exit For
Next Zelle
Select Case Target.Column
' Formel für Spalte B (Beispiel)
Case 2: Zelle.Formula = "=A" & Target.Row & "/2"
' Formel für Spalte C (Beispiel)
Case 3: Zelle.Formula = "=B" & Target.Row & "/2"
' Formel für Spalte D (Beispiel)
Case 4: Zelle.Formula = "=A" & Target.Row & "*2"
End Select
End If
End If
End Sub

Gruss
Chris
Anzeige
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
Anzeige
AW: Berechnung mit 3 variablen Spalten
ChrisL
Hi Klaus
Blöd, habe einen Überlegungsfehler gemacht.
Select Case Zelle.Column
müsste funktionieren
Gruss
Chris
AW: Berechnung mit 3 variablen Spalten
22.07.2004 13:13:46
Klaus
Ja, das war die Lösung (da hätte ich ja eigentlich auch selbst drauf kommen müssen...).
Funktioniert wunderbar. Vielen Dank!

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige