Anzeige
Archiv - Navigation
1200to1204
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Fragen zum Rechnen: Summe in VBA

Fragen zum Rechnen: Summe in VBA
Holger,
Hallo,
ich habe gerade ein 'Nebenprojekt' und hier zwei Probleme:
1 Ich habe einen Range definiert von z.B E20 bis E10000.
Wie kann ich per vba die Summe dieses Bereiches ausrechnen
ohne eine Dummy Zelle / Formel zu definieren?
2 Ich muss zusätzlich verschiedene Summe bilden je nach Zellwert.
Es gibt Herbst, Winter und Sommer und ich muss für jeden Wert
die Summe bilden. Ich würde dazu schleifen und mit Select Case nach
diesen Werten abfragen und je nachdem mit SummeHerbst = SummeHerbst + Zellwert rechnen.
Gibt es da was eleganteres oder schnelleres?
Gruß
Holger

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Fragen zum Rechnen: Summe in VBA
10.02.2011 13:24:56
Josef

Hallo Holger,
zu 1: Application.Sum(Range("E20:E10000"))
zu 2: wenn "Herbst" z. B. in C20:C10000 steht:
Application.SumIf(Range("C20:C10000"),"Herbst",Range("D20:D10000"))

Gruß Sepp

Hallo Sepp, Dir auch Danke schön! k.t.
10.02.2011 13:38:17
Holger,
AW: Worksheetfunction
10.02.2011 13:25:39
hary
hallo Holger
schau mal in der Hilfe.
Worksheetfunction.sum(..............
Was es als "normale Formel gibt" ist auch unter Worksheetfunction zu finden.
gruss hary
Anzeige
@ Harry, stimmt so nicht!
10.02.2011 13:27:49
Josef

Hallo Harry,
"Was es als "normale Formel gibt" ist auch unter Worksheetfunction zu finden."
Nicht alle Excelfunktionen haben ihre Entsprechung in VBA, und die die es gibt, sind z. T. in der Handhabung etwas anders.

Gruß Sepp

AW: Fragen zum Rechnen: Summe in VBA
10.02.2011 13:26:18
Rudi
Hallo,
1. =Application.Sum(Range("E20:E10000"))
2. wenn in z.B. F20:F10000 'Herbst' etc. steht:
SummeHerbst = Application.SumIf(Range("F20:F10000"), "Herbst", Range("E20:E10000))
Gruß
Rudi
Anzeige
Wie immer: Herzlichen Dank
10.02.2011 13:38:00
Holger,
Hallo Rudi,
ich danke Dir für deine Hilfe.
Darauf wäre ich nicht gekommen und ich bin sicher, das spart einiges
an Code und Laufzeit!!
Gruß
Holger
An Rudi und Sepp: ein Frage noch
10.02.2011 13:51:39
Holger,
Erstmal, es klappt super:
lngTotal = Application.Sum(rngSales)
Nur worauf bezieht sich Application.Sum eigentlich?
Warum ist das nicht auf den Worksheet beschränkt und warum
wird mir Sum nicht im IntelliSense angeboten?
Jetzt brauche ich noch eine Summe.
In der Spalte links von rngSales steht ein integer Wert von 1 - n
Der Wert muss mit diesem Integer wert multipliziert werden und
daraus wiederum die Summe errechnet werden.
Gibt es hier eine besser Möglichkeit als durch den Range zu schleifen
und

cell.value = cell.offset(0,-1) * cell.value 
?
Anzeige
Summenprodukt!
10.02.2011 15:42:21
Rudi
Hallo,
MsgBox Application.SumProduct(rngsales, rngsales.Offset(, -1))
Gruß
Rudi
Noch eine Frage, hier geht was nicht
10.02.2011 14:09:13
Holger,
Hallo,
debug.Print rngbrand.Address
$B$20:$B$17054
debug.print rngsales.Address
$F$20:$F$17054
debug.Print rngdate.Address
$E$20:$E$17054
lngOthers = Application.SumIf(rngBrand, "", rngSales)
Die berechnete Summe von lngOthers ist nicht korrekt.
In rngBrand ist die Others Info, in rngSales stehen die Zahlen.
Hat jemand eine Idee?
Das hat sich erledigt!
10.02.2011 14:15:59
Holger,
Mit *Othe* klappt es, keine Ahnung warum!

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige