Wenn(Oder(B13>50000;B13<59999);B13*5,3%;hier dann wieder eine wenn oder)
der Vorschlag von Ralf ist sicher ein Weg, aber Michael schrieb von 10 versch. Moeglichkeiten. Normalerweise gehen in Excel nur 8 WENNs. Bei mehr WENNS muessen diese mit + verbunden werden:
=WENN(...;+Wenn(...;+WENN(...;"")))
Gruss Volker
In die Dekleration der Tabelle und Code anpassen. mfg, GraFri
--------------------------------------------------------Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim tb As Worksheet
Dim A As Single
Dim B As Single
Set tb = Worksheets("Tabelle1")
On Error GoTo Fehler
Application.EnableEvents = False
If Target.Address = "$B$13" Then
If IsNumeric(tb.[B13].Value) Then 'Abfrage, ob Zahl
A = tb.[B13].Value
Select Case A
Case Is < 60000
B = A * 0.053
Case Is < 80000
B = A * 0.042
Case Is < 100000
B = A * 0.0332
'usw.
'usw.
'usw:
End Select
tb.[B14].Value = Format(Round(B, 2), "#,###.#0") 'Ausgabe in Zelle B14
End If
End If
Application.EnableEvents = True
Exit Sub
Fehler:
End Sub
--------------------------------------------------------
--------------------------------------------------------
Drücke in der Excel-Tabelle Alt+F11, dann solte ein zweigeteiltes Fenster erscheinen (oder: Unter Extras\Makro... den Visual-Basic Editor aufrufen). Im linken Fenster (falls nicht vorhanden, Strg+R drücken) findest du eine Auflistung aller geöffneter Dateien. Wähle dort die entsprechende Datei und dann das entsprechende Tabellenblatt durch doppelklick aus. Anschließend kopiere den Code in das rechte Fenster. Dann im Code den Tabellennamen und eventuell auch die Ausgabezelle anpassen.
--------------------------------------------------------
mfg, GraFri
ansonsten Formel:
=WENN(ODER(B13>50000;B13<59999);B13*5,3%;+WENN(ODER(B13>60000;B13<69999);B13*4%;+WENN usw))
klar sehr gerne - ich verzweifele schon es ist so kompliziert - ein "Formelweg" würde mir reichen - die anderen Daten setze ich dann selbst ein - nur einmal wissen wie es geht:
in B13 wird der Wert eingegeben und in C13 soll das Egebnis ausgeworfen werden.
B13 = 80.000 Honorar und in C13 sthet dann automatisch: 3.360
(80.000 x 4,2 %) udn wenn ich 50.000 e eingebe muss in C13 automatisch 2.650 stehen (50.000 x 5,3%) Alles klar? wenn Fragen einfach anmailen. Danke
Jetzt klappt alles wunderbar!!!!!!!!!!!!!!!
Ich hatte mich verschieben - wirklich super klasse
Vielen Dank!!!!!
Tolles Wochenende an GraFri
Habe den Code etwas geändert. Ausgabe in Zelle C13, Tabellenname = 'Test', bei falscher Eingabe wird die Eingabe- und Ergebniszelle gelöscht. Lösche den alten Code und kopiere den Code nochmals in die Tabelle 'Test'. Speichere die Tabelle ab, schließe sie und öffne sie erneut, dann sollte es funktionieren. mfg, GraFri
--------------------------------------------------------Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim tb As Worksheet
Dim A As Single
Dim B As Single
Set tb = Worksheets("Test")
On Error GoTo Fehler
Application.EnableEvents = False
If Target.Address = "$B$13" Then
If IsNumeric(tb.[B13].Value) Then 'Abfrage, ob Zahl
A = tb.[B13].Value
Select Case A
Case Is < 60000
B = A * 0.053
Case Is < 80000
B = A * 0.042
Case Is < 100000
B = A * 0.0332
'usw.
'usw.
'usw:
End Select
tb.[C13].Value = Format(Round(B, 2), "#,###.#0") 'Ausgabe in Zelle C13
tb.[B13].Value = Format(A, "#,###.#0")
Else
tb.[B13] = vbNullString
tb.[C13] = vbNullString
End If
End If
Application.EnableEvents = True
Exit Sub
Fehler:
Application.EnableEvents = True
End Sub
--------------------------------------------------------
=VERWEIS(B13;{50000;60000;70000;80000};{5,3;4,3;3,3;2,3})*B13%
MfG Josef