Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
832to836
832to836
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Summen bilden

Summen bilden
08.01.2007 15:09:51
benites
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

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Summen bilden
08.01.2007 16:00:08
fcs
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

Anzeige
AW: Summen bilden
08.01.2007 16:08:45
Benites
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
AW: Summen bilden
08.01.2007 23:56:31
fcs
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

Anzeige
AW: Summen bilden
08.01.2007 20:04:41
Daniel
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
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige