PDA

Vollständige Version anzeigen : Summierung mittels VBA


duentw
28.05.2001, 14:55
Hi zusammen,

es geht um eine kleine Excel-Tabelle. In einer Spalte stehen untereinander unterschiedliche Gruppen-Nr. In der Spalte daneben steht eine Zahl.

Aufgabe ist es, die Zahlen gleicher Gruppen-Nr zu summieren.

Mein Versuch sieht wie folgt aus:

Apl0 = Cells(4, 5)
Zaehler = 0
' für den ersten Fall bekommt Variable "ersterFall" die Stk.Menge zugewiesen
ersterFall = Cells(4, 7)

For I = 1 To 2000
Apl = Cells(4 + Zaehler, 5)
Einzelwert = Cells(4 + Zaehler, 7)

If Apl = Apl0 Then
Zaehler = Zaehler + 1
su = su + Einzelwert
'Debug.Print Zaehler
Else
Uebertrag = su
I = 2001 ' Abbruchbedingung
End If
Next

Rein = Uebertrag + ersterFall
Sheets("AplAnalyse").Select
Cells(4 + K, 7) = Rein

Haut soweit auch hin, bis eine neue Gruppen-Nr kommt.
Wie schaffe ich es, dass die Summierung statt für eine Gruppen-Nr für beliebig viele Einträge von statten geht?

Wer kann mir helfen?

Manuela Kulpa
28.05.2001, 15:13
<font face="Verdana" size="2">Hallo duentw!

Hmmm, soweit ich das erkennen kann, brauchst du hierbei gar nicht mit einer Prozedur zu arbeiten. Setze doch einfach die Funktion SummeWenn (s. a. OL-Hilfe bzw. Funktions-Assistent - Kategorie Math. & Trigonom.) ein, und schwups erhältst du das Ergebnis, welches du benötigst :)!
</font>

<font size="1" face="Century Gothic">Moderatorenanmerkung: die Überarbeitung dieses Beitrages ist im Zuge der Arbeiten zu sehen, die durch den Wechsel der Forensoftware zum 01.01.2003 verursacht wurden.

Es wurden in diesem Beitrag Links korrigiert, die auf falsche Adressen zeigten und die Signatur angepasst...</font>

duentw
28.05.2001, 15:51
Hallo Manuela,

vielen Dank für Deinen Eintrag.

Mit SUMMEWENN kann leider nicht gearbeitet werden, die Datei hat einen gewissen Umfang. Deshalb kann auf VBA nicht verzichtet werden.

Meiner Meinung wird noch eine zweite Schleife benötigt.

Hast Du noch eine Idee?

Mfg

duentw
29.05.2001, 13:28
Manuela,

falls Du mal vor dem gleichen Problem stehen solltest, ich habe einen Weg gefunden:

Row = 4
Alt = Cells(Row, 5)
neu = Cells(Row + 1, 5)
StartMenge = Cells(Row, 7)
FolgeMenge = Cells(Row + 1, 7)
Total = StartMenge
rw = Row

While (Cells(Row, 5) <> 0)

If (neu = Alt) Then
Total = Total + FolgeMenge
Else
Windows("Nacharbeit.xls").Activate
Sheets("AplAnalyse").Select
Cells(rw, 7) = Total
Sheets("Analyse").Select
Total = StartMenge
rw = rw + 1
End If

Row = Row + 1
neu = Cells(Row + 1, 5)

Alt = Cells(Row, 5)
StartMenge = Cells(4 + Row - 3, 7)
FolgeMenge = Cells(4 + Row - 3, 7)
Debug.Print "es folgt " & FolgeMenge
Wend


Viel Grüße und besten Dank nochmals!