Hallo,
ich bin leider noch Anfänger, was die Erstellung sinnvoller Tabellen angeht und hoffe hier Hilfe zu finden.
Ich habe verschiedene Produkte, die in 2 Formen vorliegen und bekomme dazu immer meine Rechnungen (getrennt nach den Formen).
Nun benötige ich zu jeder Form den Preis inklusive und exklusive Mehrwertsteuer. Die Mehrwertsteuer kann einmal 7 % und einmal 16 % sein. Da ich die Tabelle nächstes Jahr auch noch benutzen möchte müssten auch schon die 19% ausgewählt werden können.
Nun die Anforderung an meine Tabelle:
Ich möchte je nach Rechnung die einzelnen Posten mal in die Spalte inklusive und mal in die Spalte mit exklusive Mehrwertsteuer eintragen können und die jeweils andere Spalte soll dann selbst nach Auswahl (oder Eintragen) des dazugehörigen Mehrwertsteuersatzes berechnet werden.
Wie löse ich das am Besten? Ich hoffe das war halbwegs verständlich.
Vielen Dank für Eure Tipps!
Nun die Anforderung an meine Tabelle:
Ich möchte je nach Rechnung die einzelnen Posten mal in die
Spalte inklusive und mal in die Spalte mit exklusive
Mehrwertsteuer eintragen können und die jeweils andere Spalte
soll dann selbst nach Auswahl (oder Eintragen) des
dazugehörigen Mehrwertsteuersatzes berechnet werden.
Hi Pfob,
der Code bezieht sich auf folgenden Tabellenaufbau, bei Cells() gibt die 2 die zweite Spalte, also B, an, 3= C usw, demenstprechend musst du dir den Code für deine Tabelle anpassen.
Der Code wird automatisch ausgeführt wenn du in C oder D etwas eingibst. Die korrekte MwSt in B wird auch überprüft.
Alt+F11, Doppelklick auf „Tabelle1“ , Code reinkopieren, Anpassen, Editor schliessen.
Tabellenblattname: Tabelle1
A B C D
1 produkt mwst ohne mit
2 a 7 199,0654 213
3 a 16 92,241 107
4 b 19 200 238
5 b 7 10 10,7
Der Code:
Option Explicit
Private Sub Worksheet\_Change(ByVal Target As Range)
If Target.Cells.Count 1 Then Exit Sub
Select Case Target.Column
Case 2
If Target 7 And Target 16 And Target 19 Then MsgBox "falsche Mwst."
Case 3, 4
If Target.Column = 3 And Target "" Then Cells(Target.Row, 4) = Cells(Target.Row, 3) + Cells(Target.Row, 3) \* Cells(Target.Row, 2) / 100
If Target.Column = 4 And Target "" Then Cells(Target.Row, 3) = Cells(Target.Row, 4) / (Cells(Target.Row, 2) + 100) \* 100
End Select
End Sub
Gruß
Reinhard
neuer Code
Hi,
besser so:
Option Explicit
Private Sub Worksheet\_Change(ByVal Target As Range)
If Target.Cells.Count 1 Then Exit Sub
Select Case Target.Column
Case 2
If Target 7 And Target 16 And Target 19 Then
Application.EnableEvents = False
Target.Select
Target.ClearContents
MsgBox "falsche Mwst., nur 7 oder 16 oder 19 erlaubt"
Application.EnableEvents = True
End If
Case 3, 4
If Target.Column = 3 And Target "" Then Cells(Target.Row, 4) = Cells(Target.Row, 3) + Cells(Target.Row, 3) \* Cells(Target.Row, 2) / 100
If Target.Column = 4 And Target "" Then Cells(Target.Row, 3) = Cells(Target.Row, 4) / (Cells(Target.Row, 2) + 100) \* 100
End Select
End Sub
Gruß
Reinhard
Hallo Sandra,
Ich habe eine Tabelle gebastelt, die deien Anforderungen erfüllen sollte. Sie hat ein Eingabeblatt und ein Ausgabeblatt.
Die Datei ist unterwegs. Wenn du Fragen hast, bitte melden!
Gruß Alex
Nochmal vielen Dank für eure Tipps, ich werde es gegen Ende der Woche ausprobieren.
Die Hilfsbereitschaft find ich toll hier!!!