Herbers Excel-Forum - das Archiv

Summen bilden

Bild

Betrifft: Summen bilden
von: benites

Geschrieben am: 08.01.2007 15:09:51
Hallo zusammen,
ich habe eine, wenigstens für mich schwierige, Frage. Und zwar habe ich eine Tabelle. In der ersten Spalte stehen Produktnummern und in der zweiten stehen per SVERWEIS verlinkte Preise. Nun hätte ich gern ein Makro oder eine Lösung, dass wenn ich in eine Zelle der ersten Spalte ein best. Kürzel eintrage (z.B.:Summe) in der Preiszelle daneben eine Summe gebildet wird, die alle Datensätze die in den Zeilen, über der Zeile in die ich das Kürzel eingetragen habe, sind beinhaltet. Es sollen also alle Zeilen nach oben aufsummiert werden sollen, bis zu der nächsten Zelle in der ersten Spalte in der halt wieder das Kürzel steht. Ich hoffe ihr könnt mir helfen
Gruß
Benites
Bild

Betrifft: AW: Summen bilden
von: fcs

Geschrieben am: 08.01.2007 16:00:08
Hallo Benites,
es ist günstiger in diesem Fall mit der Funktion TEILERGEBNIS zu arbeiten als mit SUMME, da man dann auch immer noch einfach ist die Gesamtsumme als Teilergebnis zu berechnen.
Mussdir halt aussuchen, was besser passt. Folgendes Makro fügt die Summenformel ein. Du muss ggf. noch die Startzeile und das Kürzel anpassen.
Gruß
Franz
Sub TeilsummenFormel()
Dim wks As Worksheet, Zeile As Long, Kuerzel As String, Zeile1 As Long, ZeielA As Long
Kuerzel = "Summe"
Set wks = ActiveSheet
Zeile1 = 1 'Zeile ab der Summen berechnet werden sollen
For Zeile = Zeile1 To wks.Cells(wks.Rows.Count, "A").End(xlUp).Row
If wks.Cells(Zeile, "A").Value = Kuerzel Then
wks.Cells(Zeile, "B").FormulaR1C1 = "=SUBTOTAL(9,R[-" & ZeileA & "]C:R[-1]C)"
'      wks.Cells(Zeile, "B").FormulaR1C1 = "=SUM(R[-" & ZeileA & "]C:R[-1]C)"
ZeileA = 0
Else
ZeileA = ZeileA + 1
End If
Next
'  wks.Cells(Zeile, "A") = "Gesamtsumme"
'  wks.Cells(Zeile, "B").FormulaR1C1 = "=SUBTOTAL(9,R[-" & Zeile - Zeile1 & "]C:R[-1]C)"
End Sub

Bild

Betrifft: AW: Summen bilden
von: Benites

Geschrieben am: 08.01.2007 16:08:45
Hallo Franz,
danke für deine Antwort, aber ich hätte es ja gern, dass das Makro automatisch ausgeführt wird, sobald ich das Kürzel in die Zelle schreibe. Ohne das makro manuell asuzuführen. Und die Zeilen, die von der Summe berücksichtigt werden sollen, soll das Makro auch selbst herausfinden. Anfangszeile die Zeile in der das Kürzel steht, dann nach oben bis wieder irgendwann in der Produktnummernspalte das Kürzel steht.
Danke und Gruß
Benites
Bild

Betrifft: AW: Summen bilden
von: fcs

Geschrieben am: 08.01.2007 23:56:31
Hallo Benites,
mit VBA-Level gut hättest du ja jetzt auch mal selber anfangen können aus meinem Makro eine automatische Variante zu stricken.
Folgendes Makro, einzufügen im VBA-Editor unter der TAbelle in der die Summenformeln eingefügt werden sollen, reagiert auf Eingaben in der Tabelle.
Gruss
Franz
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim wks As Worksheet, Zeile As Long, Kuerzel As String, Zeile1 As Long
Kuerzel = "Summe"
Set wks = Me
Zeile1 = 2 'Zeile ab der Summen berechnet werden sollen
If Target.Column = 1 And Target.Value = Kuerzel Then
Zeile = Target.Row
Do
Zeile = Zeile - 1
Loop Until Zeile = Zeile1 Or wks.Cells(Zeile, "A") = Kuerzel
If Zeile = Zeile1 Then
wks.Cells(Target.Row, "B").FormulaR1C1 = "=SUBTOTAL(9,R[-" & Target.Row - Zeile & "]C:R[-1]C)"
'wks.Cells(Target.Row, "B").FormulaR1C1 = "=SUM(R[-" & Target.Row - Zeile & "]C:R[-1]C)"
Else
wks.Cells(Target.Row, "B").FormulaR1C1 = "=SUBTOTAL(9,R[-" & Target.Row - Zeile - 1 & "]C:R[-1]C)"
'wks.Cells(Target.Row, "B").FormulaR1C1 = "=SUM(R[-" & Target.Row - Zeile - 1 & "]C:R[-1]C)"
End If
End If
End Sub

Bild

Betrifft: AW: Summen bilden
von: Daniel Eisert

Geschrieben am: 08.01.2007 20:04:41
Hallo
ich halte es aus Datentechnischen Gründen nicht für sinnvoll, Einzelpreise und Zwischensummen in die gleiche Spalte zu Schreiben. Das ist noch ein Relikt aus den Zeiten von Papierlisten, aber in Excel tut man sich wesentlich leichter, wenn man das in verschiedene Spalten aufteilt.
schau dir mal das Beispiel an:
wenn du in der 3. spalte an irgendwo "Summe" reinschreibst, dann werden in der 5. Spalte alle Preise aufaddiert, die zwischen 2 Summen liegen (dabei wird die Zeile der unteren "Summe" mit berechnet, so daß du lückenlose Artikellisten schreiben kannst)
Das ganze ist Formelmäßig so aufgebaut, daß du die Zwischensummen beliebig verschieben kannst.
VBA wir dafür nicht benötigt.
https://www.herber.de/bbs/user/39493.xls
Gruß, Daniel
 Bild
Excel-Beispiele zum Thema "Summen bilden"
Summenbildung bei Checkboxaktivierung Summenformel unter Zahlenreihe eintragen
Summenbezüge korrigieren Zwischensummen eintragen
Summenformel per VBA eintragen Summen unter Berücksichtigung von Ober- und Untergrenzen
Summen zwischen zwei Zeiträumen ermitteln Zellen in Abhängigkeit des Summen-Teilergebnisses markieren
Nur Summenformel zur längsten Spalte eintragen Summe bilden, wenn Kriterium Zeichenfolge