VBA Summe einer Spalte

Bild

Betrifft: VBA Summe einer Spalte
von: Niclas
Geschrieben am: 28.05.2015 14:49:16

Hallo Community,
angenommen ich möchte in C1 mir die Summe aller Werte aus Spalte S anzeigen lassen ohne zu wissen wie groß der Bereich ist, sprich von S2 bis Ende der Tabelle, wie könnte der entsprechende Code dafür lauten.
Ich habe es mit dem Macrorecorder versucht aber das Ergebnis ist nicht umsetzbar auf andere Tabellen in der Datei.
Der Code müsste eigentlich sagen ,,Schreibe mir die Summe aller positiven Werte aus S2 bis Tabellenende im aktuellen Sheet". Leider hapert es mit der Umsetzung aufgrund mangelnder VBA Kenntnisse.
Wenn mir jemand helfen könnte wäre ich sehr dankbar.
Euer Niclas

Bild

Betrifft: AW: VBA Summe einer Spalte
von: Hajo_Zi
Geschrieben am: 28.05.2015 14:54:22
warum nicht einfach Summewenn()? S2:S1048576


Bild

Betrifft: AW: VBA Summe einer Spalte
von: Niclas
Geschrieben am: 28.05.2015 15:05:37
Folgendes:
Range("E1").Value = WorksheetFunction.SumIf(Range("S2:S1000"), ">0", Range("S2:S1000"))
funktioniert soweit. Ich würde die Zelle jedoch noch etwas formatieren.Ich weiß das das zB über with geht, jedoch kenne ich nicht den genauen Code. Wie muss ich schreiben bzw die Zelle E1 konkret ansprechen und diese soll dann das machen:
.Interior.Color = vbYellow
.Borders(xlEdgeTop).Weight = xlThick
.Borders(xlEdgeBottom).Weight = xlThick
.Borders(xlEdgeRight).Weight = xlThick
.Borders(xlEdgeLeft).Weight = xlThick
Niclas

Bild

Betrifft: AW: VBA Summe einer Spalte
von: Michael (migre)
Geschrieben am: 28.05.2015 15:04:01
Hallo Niklas!
In VBA zB so: In die Zelle C1 wird die Summe der Spalte B wie folgt geschrieben:

 'Summe der gesamten Spalte B
    Range("C1").Value = WorksheetFunction.Sum(Range("B:B"))
    'Summe von B2 bis Ende B2 OHNE Leerzeilen
    Range("C1").Value = WorksheetFunction.Sum(Range(Cells(2, 2), Cells(2, 2).End(xlDown)))
    'Summe von B2 bis letzte Zeile B MIT Leerzeilen
    Range("C1").Value = WorksheetFunction.Sum(Range("B2:B" & Range("B:B").SpecialCells(xlCellTypeLastCell).Row))
LG
Michael

Bild

Betrifft: AW: VBA Summe einer Spalte
von: Michael (migre)
Geschrieben am: 28.05.2015 15:05:28
Hallo Niclas!
In VBA zB so (Zelle C1 soll den Summenwert erhalten):
'Summe der gesamten Spalte B
Range("C1").Value = WorksheetFunction.Sum(Range("B:B"))

'Summe von B2 bis Ende B2 OHNE Leerzeilen
Range("C1").Value = WorksheetFunction.Sum(Range(Cells(2, 2), Cells(2, 2).End(xlDown)))

'Summe von B2 bis letzte Zeile B MIT Leerzeilen
Range("C1").Value = WorksheetFunction.Sum(Range("B2:B" & Range("B:B").SpecialCells(xlCellTypeLastCell).Row))
LG
Michael

Bild

Betrifft: AW: VBA Summe einer Spalte
von: Michael (migre)
Geschrieben am: 28.05.2015 15:05:34
Hallo Niclas!
In VBA zB so (Zelle C1 soll den Summenwert erhalten):
'Summe der gesamten Spalte B
Range("C1").Value = WorksheetFunction.Sum(Range("B:B"))

'Summe von B2 bis Ende B2 OHNE Leerzeilen
Range("C1").Value = WorksheetFunction.Sum(Range(Cells(2, 2), Cells(2, 2).End(xlDown)))

'Summe von B2 bis letzte Zeile B MIT Leerzeilen
Range("C1").Value = WorksheetFunction.Sum(Range("B2:B" & Range("B:B").SpecialCells(xlCellTypeLastCell).Row))
LG
Michael

Bild

Betrifft: AW: VBA Summe einer Spalte
von: Niclas
Geschrieben am: 28.05.2015 16:57:53
Hallo Michael,
und wie müsste ich die Formel umändern wenn ich nur Werte größer 0 in der besagten Spalte summiert haben will?
Niclas

Bild

Betrifft: AW: VBA Summe einer Spalte
von: Michael (migre)
Geschrieben am: 28.05.2015 17:21:34
Hallo Niclas!
Dann so (wobei Du damit eher negative Werte ausschließt, denn ein 0-Wert ändert Deine Summe sowieso nicht): Varianten verstehen sich wie oben

Range("C1").Value = WorksheetFunction.SumIf(Range("B:B"), ">0")
Range("C1").Value = WorksheetFunction.SumIf(Range(Cells(2, 2), Cells(2, 2).End(xlDown)), ">0")
Range("C1").Value = WorksheetFunction.SumIf(Range("B2:B" & Range("B:B").SpecialCells(xlCellTypeLastCell).Row), ">0")
LG
Michael

 Bild

Beiträge aus den Excel-Beispielen zum Thema "VBA Summe einer Spalte "