Microsoft Excel

Herbers Excel/VBA-Archiv

Summe von Datenfeld-Elementen

Betrifft: Summe von Datenfeld-Elementen von: Harry
Geschrieben am: 16.08.2004 20:21:37

Hallo liebe Forumler,

ich habe ein eindimensionales Datenfeld dessen Elemente ausschließlich jeweils eine Zahl enthalten. Jetzt möchte ich die Summe aller Zahlen bilden. Muss ich dazu eine Schleife bemühen (soweit wär’s klar) oder gibt es eine spezielle VBA-Funktion dafür.

Schön wäre auch, könnte man mit einer weitern Funktion das Vorzeichen der jeweiligen Zahlen umdrehen.

Vielleicht hat jemand eine Tip, würde mich freuen.

Gruß
Harry

  


Betrifft: AW: Summe von Datenfeld-Elementen von: Ulf
Geschrieben am: 16.08.2004 20:41:58

zu1: Summe ganz einfach mit Application.Sum(deinArray)

zu2: Elemente * -1

Ulf


  


Betrifft: AW: Summe von Datenfeld-Elementen von: Harry
Geschrieben am: 16.08.2004 21:08:19

Hallo Ulf,

vielen Dank für Deine Hilfe. Dann nehm ich also einfach die Excel-Tabellenfunktion Sum (gibt wohl keine Entsprechung in VBA). Das klappt auch prima, hab schon probiert.

Und zum Umdrehen der Vorzeichen muss ich dann wohl doch eine Schleife einsetzten, und die Elemente entsprechend mit -1 multiplizieren.

Grüße
Harry


  


Betrifft: AW: Summe von Datenfeld-Elementen von: Ulf
Geschrieben am: 16.08.2004 21:16:44

zu2: Richtig, geht aber bei Arrays sehr schnell.

Ulf


  


Betrifft: AW: Summe von Datenfeld-Elementen von: andre
Geschrieben am: 16.08.2004 21:21:47

Hallo Harry,
bei Deiner Summe brauchst Du das Ergebnis nur mit -1 multiplizieren.
Sub test()
Dim a()
a = Array(1, -2, 3)
b = WorksheetFunction.Sum(a) * -1
End Sub



  


Betrifft: AW: Summe von Datenfeld-Elementen von: Harry
Geschrieben am: 16.08.2004 21:30:59

Hallo Andre,

danke für den Lösungsansatz. Das Vorzeichen der Gesamtsumme umzudrehen ist mit * -1 kein Problem (klappt bei mir auch), aber ich müsste die Vorzeichen der Zahlen jedes einzelnen Elements umdrehen.

Grüße
Harry


  


Betrifft: Vielen Dank von: Harry
Geschrieben am: 16.08.2004 21:24:03

Nochmals vielen Dank Ulf, hab jetzt ein gutes Gefühl.