Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Seitenumbruch, Zwischensumme und Übertrag

Forumthread: Seitenumbruch, Zwischensumme und Übertrag

Seitenumbruch, Zwischensumme und Übertrag
17.04.2019 14:02:30
Max
Hallo,
ich habe ein Problem mit VBA, dass mich jetzt schon ewig beschäftigt.
Es geht darum, dass ich eine Warenrechnung von Excel in Word umwandeln will. Die für die Rechnung relevanten Daten fangen in Zeile 20 an und es gibt 8 Reihen (bis H).
Mein Ziel ist, dass bei jedem Seitenumbruch eine Zwischensumme eingefügt wird und ein Übertrag der Zwischensumme auf der nächsten Seite eingefügt wird.
In einem Wordblatt werden mir 22 Zeilen ausgegeben (falls es irgendwie weiterhilft).
Würde es mit einem Einfügen von einer Zwischensummenrechnung nach 21 Zeilen klappen ?
Ich komme seit Tagen leider nicht weiter und hoffe Ihr könnt mir da weiterhelfen.
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Seitenumbruch, Zwischensumme und Übertrag
20.04.2019 11:48:17
fcs
Hallo Max,
hier eine Beispieldatei mit dem nachfolgenden Makro.
https://www.herber.de/bbs/user/129284.xlsm
LG
Franz
Sub RechnungZwischenSummen()
Dim wks As Worksheet
Dim AnzZeilenproSeite As Long
Dim Zeile_T As Long, Zeile As Long, Zaehler As Long
Dim bolSeite1 As Boolean
Set wks = ActiveSheet
With wks
Zeile_T = 19 'Überschriften-Zeile
AnzZeilenproSeite = 22
Zeile = .Cells(.Rows.Count, 1).End(xlUp).Row
'Text + Formeln für Summenzeile
.Cells(Zeile + 2, 1) = "Summe"
.Cells(Zeile + 2, 8).FormulaR1C1 = "=Subtotal(9,R" & (Zeile_T + 1) & "C:R[-1]C)"
Zaehler = 0
Zeile = Zeile_T + 1
Do
Zeile = Zeile + 1
If .Cells(Zeile, 1) = "" Then Exit Do
If Zaehler = AnzZeilenproSeite - 2 Then
'2 Leerzeilen einfügen
.Range(.Rows(Zeile), .Rows(Zeile + 1)).Insert
'Zeile für Zwischensumme ausfüllen
.Cells(Zeile, 1).Value = "Zwischensumme"
.Cells(Zeile, 8).FormulaR1C1 = "=Subtotal(9,R" & (Zeile_T + 1) & "C:R[-1]C)"
'Zeile für Übertrag ausfüllen
.Cells(Zeile + 1, 1).Value = "Übertrag"
.Cells(Zeile + 1, 8).FormulaR1C1 = "=Subtotal(9,R" & (Zeile_T + 1) & "C:R[-1]C)" _
Zaehler = 0
Zeile = Zeile + 1
Else
Zaehler = Zaehler + 1
End If
Loop
End With
End Sub

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Seitenumbruch, Zwischensumme und Übertrag in Excel


Schritt-für-Schritt-Anleitung

Um eine Zwischensumme und einen Übertrag in Excel bei jedem Seitenumbruch zu erstellen, kannst du das folgende VBA-Makro verwenden. Es geht davon aus, dass die relevanten Daten ab Zeile 20 beginnen und du nach 22 Zeilen eine Zwischensumme und einen Übertrag einfügen möchtest.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
  3. Kopiere und füge den folgenden Code in das Modul ein:
Sub RechnungZwischenSummen()
    Dim wks As Worksheet
    Dim AnzZeilenproSeite As Long
    Dim Zeile_T As Long, Zeile As Long, Zaehler As Long
    Set wks = ActiveSheet
    With wks
        Zeile_T = 19 'Überschriften-Zeile
        AnzZeilenproSeite = 22
        Zeile = .Cells(.Rows.Count, 1).End(xlUp).Row

        'Text + Formeln für Summenzeile
        .Cells(Zeile + 2, 1) = "Summe"
        .Cells(Zeile + 2, 8).FormulaR1C1 = "=Subtotal(9,R" & (Zeile_T + 1) & "C:R[-1]C)"

        Zaehler = 0
        Zeile = Zeile_T + 1

        Do
            Zeile = Zeile + 1
            If .Cells(Zeile, 1) = "" Then Exit Do
            If Zaehler = AnzZeilenproSeite - 2 Then
                '2 Leerzeilen einfügen
                .Range(.Rows(Zeile), .Rows(Zeile + 1)).Insert

                'Zeile für Zwischensumme ausfüllen
                .Cells(Zeile, 1).Value = "Zwischensumme"
                .Cells(Zeile, 8).FormulaR1C1 = "=Subtotal(9,R" & (Zeile_T + 1) & "C:R[-1]C)"

                'Zeile für Übertrag ausfüllen
                .Cells(Zeile + 1, 1).Value = "Übertrag"
                .Cells(Zeile + 1, 8).FormulaR1C1 = "=Subtotal(9,R" & (Zeile_T + 1) & "C:R[-1]C)"

                Zaehler = 0
                Zeile = Zeile + 1
            Else
                Zaehler = Zaehler + 1
            End If
        Loop
    End With
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Führe das Makro aus, um die Zwischensummen und den Übertrag auf der nächsten Seite automatisch einzufügen.

Häufige Fehler und Lösungen

  • Fehler: Das Makro fügt keine Zwischensummen hinzu.

    • Lösung: Überprüfe, ob die Zeile_T korrekt auf die Überschrift gesetzt ist (19 für die 20. Zeile). Stelle sicher, dass die Daten ab Zeile 20 beginnen.
  • Fehler: Die Summenformel funktioniert nicht.

    • Lösung: Achte darauf, dass die Formel korrekt eingegeben ist. Sie sollte =Subtotal(9,RnC:R[-1]C) lauten, wobei n die Startzeile ist.

Alternative Methoden

Wenn du keine VBA-Lösungen verwenden möchtest, kannst du auch manuell Zwischensummen in Excel einfügen:

  1. Markiere den Datenbereich.
  2. Gehe zu Daten > Zwischensumme.
  3. Wähle die Spalte aus, für die du die Zwischensumme berechnen willst.
  4. Wähle die Option Gruppieren nach und gib die Bedingungen an.

Diese Methode erfordert jedoch mehr manuelle Arbeit und ist nicht so automatisiert wie die VBA-Option.


Praktische Beispiele

Angenommen, du hast eine Warenrechnung, bei der die Summen automatisch eingefügt werden sollen:

  • Du hast 22 Zeilen, die Informationen über Produkte enthalten.
  • Nach der 21. Zeile wird eine Zwischensumme eingefügt und die Summe wird auf der nächsten Seite angezeigt.

Das Makro oben erledigt diese Aufgabe für dich, indem es die Zwischensummen und Überträge automatisch an den richtigen Stellen hinzufügt.


Tipps für Profis

  • Automatisierung: Stelle sicher, dass du regelmäßig das Makro ausführst, um deine Rechnungen aktuell zu halten.
  • Datenvalidierung: Überprüfe regelmäßig die Eingabedaten, um sicherzustellen, dass alle Werte korrekt sind.
  • Anpassungen: Du kannst das Makro anpassen, um verschiedene Zeilenanzahlen oder Berechnungen zu verwenden.

FAQ: Häufige Fragen

1. Wie füge ich eine Zwischensumme in Excel ein? Du kannst die Zwischensumme über das Menü Daten > Zwischensumme hinzufügen oder ein Makro verwenden, um sie automatisch zu generieren.

2. Was ist der Unterschied zwischen Zwischensumme und Summe? Die Zwischensumme ist eine Teilsumme, die innerhalb einer Gruppe von Daten erstellt wird, während die Summe die Gesamtsumme aller Daten ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige