Clever-Excel-Forum

Normale Version: Sortieren, Zeile einfügen und MwSt.
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Excel Profis,
ich bin auf der Suche nach einer Formel die Zellen durchforstet, und wenn in Spalte bei MwSt 5% ein Betrag steht und  einer steht bei der Spalte 16% das Excel einen neue Zeile generiert, in dieser dann einen Betrag der Spalte reinschreibt bzw. verschiebt und dann noch den Gesamtbetrag aufteilt. Wäre das Super..

Und als Schmankerl unten die Beträge alle auflistet.



Anbei noch 2 Bilder als Beispiel..

Liebe Grüße Thomas
Hallo Thomas,

wie schon so oft hier geschrieben: Bilder nützen und helfen garnichts, eine Beispieldatei ist den Helfern viel willkommener!
Hallo Glausius,
ok danke für den Tip. Jetzt mit Datei..

Grüße Thomas
Moin Thomas,

konkretisiere bitte deine Eingangsfrage. Ich kann nicht erkennen, was du wo haben willst. Dein "Schmankerl" ist ja ebenfalls (mt Formeln) vorhanden.
Hallöchen,

das Einfügen der Zeilen lässt sich nur per VBA realisieren. Man geht die Tabelle von unten nach oben durch und wenn in beiden Spalten eine Zahl >0 steht dann fügt man eine Zeile ein und verteilt die Daten wie auf dem Bild 2 zu sehen ist. Schauen wir mal Smile
Hier mal ein Cödchen dazu Smile

Der Code sucht am Anfang im Bereich C1 bis F100 wo die Überschrift mit den 5% steht - könnte man auch fest programmieren - und darauf aufbauend wird dann der Rest erledigt. Wenn Du, wie Günter schreibt, da schon einiges mit Formeln berechnest klappt das hinterher vielleicht auch noch Smile

Code:
Sub test()
'Variablendeklarationen
Dim gefunden, lLRow&, iCnt%
'Zelle mit ... 5% suchen
Set gefunden = ActiveSheet.Range("C1:F100").Find(What:="MwSt. (5.0%)", After:=Range("C1")) ', LookAt:=xlValues, LookIn:=xlWhole)
'Letzte Zeile anhand Quittungsnummer ermitteln
lLRow = gefunden.Offset(0, -1).End(xlDown).Row
'Schleife von unten nach oben
For iCnt = lLRow To gefunden.Row + 1 Step -1
  'Mit der Zelle als Ausgangspunkt
  With Cells(iCnt, gefunden.Column)
    'Wenn hier und daneben Werte > 0 stehen, dann
    If .Value > 0 And .Offset(0, 1).Value > 0 Then
      'Zeile darunter einfuegen
      Rows(iCnt + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
      '5% Wert 1 tiefer uebernehmen
      .Offset(1, 0).Value = .Value
      '5% Wert auf 0 setzen
      .Value = 0
      'Eingabeart uebernehmen
      .Offset(1, 5).Value = .Offset(0, 5).Value
      'Differenzbetrag ermitteln und eintragen
      .Offset(1, 2).Value = .Offset(0, 3).Value + .Offset(0, 4).Value - .Offset(0, 2).Value
    'Ende Wenn hier und daneben Werte > 0 stehen, dann
    End If
  'Ende Mit der Zelle als Ausgangspunkt
  End With
'Ende Schleife von unten nach oben
Next
End Sub