Autosumme nach Leerzeile

Hallo zusammen,

also zuerst einmal bin ich hier neu und kenne mich nicht so wirklich mit diesem Forum aus.
Aber ich versuche es mal.

Ich habe folgende Aufgae:

1. Ich habe eine Exceltabelle nach folgendem Aufbau:
 A B C D
1 Art.Nr. Art.gr. Artbez. Menge
 ------- ------------- ------------ ------
2 129756 Bestecke Messer 120 
3 129757 Bestecke Gabel 30 
4 129758 Bestecke Löffel 50 
5 129759 Bestecke Kuchengabel 10 
6 129760 Bestecke Kaffeelöffel 26 
7 124852 Brillengläser Sehhilfen 22 
8 124851 Brillengläser Sehhilfen 45 
9 124850 Brillengläser Sehhilfen 855 
10 124849 Brillengläser Sehhilfen 65 
11 124848 Brillengläser Sehhilfen 111 
12 132408 Displays Haarspray 125 
13 132419 Displays Shampoo 1.698 
14 132407 Displays Schirme 100 
15 132406 Displays Swiffer 200 
16 132417 Displays Cremes 150 
17 132411 Displays Lotion 198 

Wir Ihr seht, gibt es Artikel mit gleicher Artikelgruppe (SpalteB).
Ich möchte jetzt gern via Makro eine Funktion einbauen, welche mir nach jeder eindeutigen Artikelgruppe eine Leerzeile einfügt und dort dann automatisch die Summe der Menge (SpalteD)einfügt.
Also das Ergebnis sollte dann so aussehen:

 A B C D
1 Art.Nr. Art.gr. Artbez. Menge
 ------- ------------- ------------ ------
2 129756 Bestecke Messer 120 
3 129757 Bestecke Gabel 30 
4 129758 Bestecke Löffel 50 
5 129759 Bestecke Kuchengabel 10 
6 129760 Bestecke Kaffeelöffel 26 
<u> <b>Bestecke</b> <b>236</b></u>
7 124852 Brillengläser Sehhilfen 22 
8 124851 Brillengläser Sehhilfen 45 
9 124850 Brillengläser Sehhilfen 855 
10 124849 Brillengläser Sehhilfen 65 
11 124848 Brillengläser Sehhilfen 111 
<u><b> Brillengläser 1.098</b></u>
12 132408 Displays Haarspray 125 
13 132419 Displays Shampoo 1.698 
14 132407 Displays Schirme 100 
15 132406 Displays Swiffer 200 
16 132417 Displays Cremes 150 
17 132411 Displays Lotion 198 
<u><b> Display 2.471</b></u>
Die Leerzeile einzufügen habe ich ja hinbekommen aber ich scheitere an der Summierung.

Sub Leerzeilen()
Dim x, i, ergo
 x = Range("L2")
For i = 3 To 65535
 ergo = Range("B" & i)
 If ergo x Then
 Worksheets("Bestand").Rows(i).Insert
 x = ergo
 End If
Next i
End Sub

Irgendwie muss ich die Summierung ja nur in jeden Leerzeilenschritt einfügen. Aber wie ?
Ich will ja auch nicht die Summe immer bis A2 sondern wie in Excel die Summe bis zur vorherigen Summe ziehen.

Grüezi Silag

Das kannst Du ganz ohne VBA-Programmierung viel einfacher haben :wink:

Lass die ganzen Leerzeilen weg und sortiere deine Daten nach Spalte B.

Dann Menü: ‚Daten‘ / Teilergebnisse

Gruppieren nach: 'Art. gr.
Unter Verwendung von: ‚Summe‘
Teilergebnis addieren zu: '[x]Menge
[OK]

Nun hast Du die gewünschten Zwischensummen und auch die Gesamtsumme eingefügt und zugleich auch noch eine Gruppierung der Zeilen.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Vielen lieben Dank.

Das hat wunderbar funktioniert.

Wieso auch einfach wenn es kompliziert geht oder ?