Herbers Excel-Forum - das Archiv

Summe mit Makro - verschiedene Spalten

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Summe mit Makro - verschiedene Spalten
von: Erwin Geer

Geschrieben am: 09.01.2007 12:26:35
Hallo zusammen,
ich suche eine Lösung für folgendes Problem:
In Spalte A habe ich jede Menge Aktenzeichen, die nacheinander aufsteigend sortiert sind, in Spalte B sind Einzelbeträge.
Ich möchte nun in Spalte C die Summe je Aktenzeichen; d. h. wenn in Spalte A eine andere Zahl steht, müsste er zuvor summieren, am besten in der ersten Zeile des zu summierenden Aktenzeichens.
Falls die Beschreibung nicht eindeutig sein sollte, siehe Beispielsdatei.
https://www.herber.de/bbs/user/39504.xls
Super wäre es, wenn mann die Spalten A, B, und C variabel einsetzen könnte (irgend ein Fenster geht auf,... und man kann evtl. auch andere Spalten eingeben.
Grüße Erwin
Bild

Betrifft: AW: Summe mit Makro - verschiedene Spalten
von: Thomas
Geschrieben am: 09.01.2007 12:33:00
Die Formel lautet (einfache Version):
=WENN(A2<>A1;SUMMEWENN(A:A;A2;B:B);"")
Die kompliziertere Version mit variablen Spaltennamen und Popup-Fenster geht dann nur mit VBA.
Gruß,
Thomas
Bild

Betrifft: Summe OHNE Makro - verschiedene Spalten
von: Klaus M.vdT.

Geschrieben am: 09.01.2007 12:35:20
Hallo Erwin,
Ich würd das ja so machen:
C2: =WENN(ZÄHLENWENN($A$2:A2;A2)=1;SUMMEWENN($A$2:$A$12;A2;$B$2:$B$12);"")
und runterkopieren bis C12.
Das "Spalten variabel machen" kanst du mit dem "INDIREKT" Befehl realisieren.
Hilft dir das?
Gruß,
Klaus M.vdT.
P.S.: Frage noch offen, da explizit nach VBA-Lösung gefragt wurde
Bild

Betrifft: AW: Summe mit Makro - verschiedene Spalten
von: Rudi Maintaire
Geschrieben am: 09.01.2007 12:35:39
Hallo,
warum denn Makro?
=WENN(ZÄHLENWENN($A$2:A2;A2)=1;SUMMEWENN(A:A;A2;B:B);"")
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe
Bild

Betrifft: AW: Summe mit Makro - verschiedene Spalten
von: EtoPHG

Geschrieben am: 09.01.2007 13:20:14
Hallo Erwin,
Noch eine kurz und kleine Lösung:
=WENN(A1<>A2;SUMMEWENN(A:A;A2;B:B);"")

Und als VBA Funktion:
Public Function sumErwin(dieseKolonne As Range, _
dieserWert As Range, _
Optional dieseSumme As Range) As Variant
Application.Volatile
If dieserWert.Cells.Offset(0, 0).Value <> dieserWert.Cells.Offset(-1, 0).Value Then
sumErwin = Application.WorksheetFunction.SumIf(dieseKolonne, _
dieserWert, _
IIf(dieseSumme Is Nothing, dieseKolonne, dieseSumme))
Else
sumErwin = ""
End If
End Function

und damit Formel:
=sumErwin(A:A;A2;B:B) und runterkopieren

Gruss Hansueli
Bild

Betrifft: AW: Summe mit Makro - verschiedene Spalten
von: Erwin Geer

Geschrieben am: 09.01.2007 12:49:58
Hallo zusammen,
alle drei Lösungen sind super und führen zum richtigen Ergebnis.
An einer VBA Lösung bin ich deshalb interessiert, weil ich diese dann in meine persönliche Sammlung aufnehmen kann und immer wieder parat habe.
Wenn einer Lust und Laune hat, bitte mal versuchen.
Bild

Betrifft: AW: Summe mit Makro - verschiedene Spalten
von: Jürgen
Geschrieben am: 09.01.2007 13:27:02
Hallo Erwin,
anbei noch ein Vorschlag :-))))
https://www.herber.de/bbs/user/39513.xls
Gruß
Jürgen
Bild

Betrifft: AW: Summe mit Makro - verschiedene Spalten
von: Dani

Geschrieben am: 09.01.2007 13:06:36
Hier mal ein Ansatz für eine VBA Lösung:
Sub Summe()
Dim z, y, Listenlänge As Long
Dim Aktenzeichen, Einzelbetrag, Summe As Integer
'Aktenzeichen = InputBox("In welcher Spalte sind die Aktenzeichen")
'Einzelbetrag = InputBox("In welcher Spalte sind die Einzelbeträge")
'Summe = InputBox("In welcher Spalte sind die Summen")
Aktenzeichen = 1
Einzelbetrag = 2
Summe = 3
y = 0
Listenlänge = Cells(Rows.Count, 1).End(xlUp).Row  'Spalte A länge ermitteln
Cells(2, Summe) = Cells(2, Einzelbetrag)
For z = 3 To Listenlänge
If Cells(z, Aktenzeichen) = Cells(z, Aktenzeichen).Offset(-1, 0) Then
y = y - 1
Cells(z, Summe).Offset(y, 0) = Cells(z, Summe).Offset(y, 0) + Cells(z, Einzelbetrag)
Else:
Cells(z, Summe) = Cells(z, Einzelbetrag)
y = 0
End If
Next
End Sub

Gruss Dani
Bild

Betrifft: AW: Summe mit Makro - verschiedene Spalten
von: Erwin Geer
Geschrieben am: 09.01.2007 13:20:12
Hallo Dani,
herzlichen Dank für's Makro, es funzt richtig!
(nur bei der 3. Abfrage nach der Spalte für die Summe muss ich anstelle Spalte C die Ziffer 3 eingeben; vielleicht kann man das noch ändern (Laufzeitfehler 13 - Typen unverträglich?)
Grüße Erwin
Bild

Betrifft: AW: Summe mit Makro - verschiedene Spalten
von: Dani
Geschrieben am: 09.01.2007 13:59:05
Hallo,
wenn du die Spalte mit "C" bezeichnen willst musst du die Cells-Anweisungen in Range Anweisungen umschreiben...
Gruss
Dani
Bild

Betrifft: AW: Summe mit Makro - verschiedene Spalten
von: Erwin Geer

Geschrieben am: 09.01.2007 16:02:48
Hallo nochmals,
konnte es erst jetzt ausprobieren; klappt alles, aber dass die Spalten A, B und C variabel sind, geht noch nicht; nachdem ich selbst kein VBA kann, kann ich's auch nicht ändern.
Es passiert nämlich nichts, wenn das Aktenzeichen in C, der Einzelbetrag in E ist und die Summe nach G soll (auch wenn ich das so in die MsgBox eingebe).
Was nun?
Grüße Erwin
Bild

Betrifft: AW: Summe mit Makro - verschiedene Spalten
von: EtoPHG

Geschrieben am: 09.01.2007 16:10:47
Hallo Erwin,
Erstens, wundere ich mich, warum Du unbedingt VBA willst, wenn Dir Formeln angeboten werden, die a) völlig flexibel sind und b) keine VBA Kentnisse verlangen.
Zweitens, wundere ich mich, dass Du die Antworten nicht liest, denn ich hab Dir eine User Function in VBA angeboten (siehe oben), die Deinen Ansprüchen von Dynamik genügen sollte.
Dort würde dann die Funktion schlicht In G2 =sumErwin(C:C;C2;E:E) stehen.
Gruss Hansueli
 Bild
Excel-Beispiele zum Thema "Summe mit Makro - verschiedene Spalten"
Verstreute Daten in verschiedenen Tabellen zusammenfassen Besuchsliste für Kunden verschiedener Kategorien führen
CommandButtons in verschiedenen Tabellen mit einem Makro Synchronisieren von Optionsfeldern in verschiedenen Blättern
Anzahl von Werten nach verschiedenen Bedingungen. Aus verschiedenen Zellwerten zusammengesetzte Webadresse aufrufen
Wert aus Optionsfelder in verschiedenen Frames auslesen Darstellung der verschiedenen Erscheinungsformen von LixtBoxes
Eintrag von Werten in verschiedene Arbeitsmappen Vorkommen von Zahlenreihen in Spalten