Excel VBA - Spalte summieren

JtGD28

Grünschnabel
Hallo,

nochmal zusammenfassend zwei Codes welche Zahlenwerte in einer Spalte summieren und das Ergebnis unterhalb des letzten Eintrags in einer Tabelle eintragen.

Code 1 funktioniert, dieser sollte aber nur Zeile 2 bis 1000 summieren.

Code:
Private Sub CommandButton1_Click() 

Dim x As Long 'Zählvariable 
Dim rngrow As Long 
Dim adi As Double 'Addierungsvariable 
Dim wks As String 

wks = "Projektliste" 
adi = 0 
rngrow = ThisWorkbook.Sheets(wks).Cells(Rows.Count, 1).End(xlUp).Row 

For x = 1 To rngrow 
    adi = adi + CDbl(ThisWorkbook.Sheets(wks).Cells(x, 15).Value) 
Next 

ThisWorkbook.Sheets(wks).Cells(rngrow + 1, 15).Value = adi 
ThisWorkbook.Sheets(wks).Cells(rngrow + 1, 15).Interior.ColorIndex = 6 
adi = 0 


End Sub

Code 2 hat bisher nicht funktioniert. Hier bekomme ich immer den Fehler, dass die Objektvariable bzw. die With-Blockvariable nicht festgelegt wurde.
Vielleicht findest Ihr ja den Fehler?

Code:
Private Sub CommandButton2_Click() 

Dim x As Long 'Zählvariable 
Dim rngrow As Double 
Dim rng As Range 
Dim wks As String 

wks = "Projektliste" 

rngrow = ThisWorkbook.Sheets(wks).Cells(Rows.Count, 15).End(xlUp).Row 
rng = ThisWorkbook.Sheets(wks).Range(Cells(1, 15), Cells(rngrow, 15)) 

ThisWorkbook.Sheets(wks).Cells(rngrow + 1, 15).Value = WorksheetFunction.Sum(rng) 
ThisWorkbook.Sheets(wks).Cells(rngrow + 1, 15).Interior.ColorIndex = 6 


End Sub

Ich wäre Euch sehr sehr dankbar, wenn Ihr mir weiterhelfen könntet.

Vielen Dank im voraus.

Gruß
Jörg
 
Moin JtGD28 ,

ich habe das Gefühl, dass du den Code aus dem Netz hast und jetzt nicht so recht weißt, was welche Zeile macht. Na ja, mir ist es auch zu mühsam, diesen wirren Code zu analysieren. Zumindest passt er nicht zu dem, was du als Forderung geschrieben hast.

Vorschlag: Stelle mal eine Datei mit Dummy-Daten zur Verfügung und sage anhand des Arbeitsblattes, was passieren soll. Als Daten kannst du ja Zufallszahlen oder immer die gleiche Zahl nehmen. Es müssen ja auch keine >1000 Zeilen sein, es kommt auf das Prinzip an.

Beispielsweise könntest du sagen: "In Spalte C (oder O) ab Zeile 5 bis zur letzten Zeile soll alles summiert werden und das Ergebnis kommt dann in F1. Bei mehr als 500 Zeilen (mit oder ohne Daten) soll bei Zeile 500 (oder 504, weil Beginn inZeile5) Schluss sein"
 
Hallo,

danke für Deine Antwort. Ich habe es jetzt wie folgt gelöst.

Code:
    Dim intRow As Integer
    intRow = Cells(Rows.Count, 2).End(xlUp).Row
    Cells(intRow + 2, 8).Value = WorksheetFunction.CountA(Range("H2:H" & intRow))
    Cells(intRow + 2, 15).Value = WorksheetFunction.Sum(Range("O2:O" & intRow))

Gruß
Jörg
 

Neue Beiträge

Zurück