Wie benutze ich die Worksheetsfunktion richti

Hallo an alle VBA Kenner,

Ich habe bereits einige hilfreiche Tipps gelesen und hoffe ihr koennt mich bei meiner Frage unterstuetzen.

Wie benutze ich die WOrksheetsfunktion richtig? So wie ich es hier gemacht habe rechtnet er aber traegt nichs ein. Es gibt ein Workbook mit zwei Sheets.Sheet1 sind alle ungefilterten Daten. Daten werden zusammengefasst als Teilsummen in Sheet 2 (nach bestimmten Kriterien).
Unabhaengig von den ganzen If abfragen ich denke mein Fehler liegt bei der WOrksheetFunction.
Ist das so formal richtig? Wenn ja dann weiss ich dass der Fehler woanders liegen muss.

Worksheets(“Sheet2“).Range(Cells(i, sum_Jan11),Cells(i, sum_Dec11)).Value= Application.WorksheetFunction.Sum(Range(Cells(j, count_Jan11), Cells(j, count_Dec11)))

Kurz zur Erklarung…
i = Schleife durch Zeilen in Sheet 2
j= SChleife durch Zeilen Sheet 1
sum_Jan11 = Werte aus Spalte Jan in Sheet2 (.value)
count_Jan11 = Holt Werte aus Spalte Jan Sheet 1 (.value)

Lieben gruss,
Marina

Grüezi Marina

Wie benutze ich die WOrksheetsfunktion richtig? So wie ich es
hier gemacht habe rechtnet er aber traegt nichs ein. Es gibt
ein Workbook mit zwei Sheets.Sheet1 sind alle ungefilterten
Daten. Daten werden zusammengefasst als Teilsummen in Sheet 2
(nach bestimmten Kriterien).

Worksheets(“Sheet2“).Range(Cells(i, sum_Jan11),Cells(i,
sum_Dec11)).Value=
Application.WorksheetFunction.Sum(Range(Cells(j, count_Jan11),
Cells(j, count_Dec11)))

Bei dir fehlt gurndsätzlich die nähere Referenzierung des Tabellenblattes bei Cells.

So wie Du die Anweisungen geschrieben hast, bezieht sich Cells immer auf das gerade aktive Tabellenblatt.
Gerade wenn die Daten aus unterschiedlichen Blättern stammen musst Du diese vor Cells sauber referenzieren.

Sehr geeignet dafür sind Objekt-Variablen, denen Du die Blätter als Objekte zuweist und die Du dann verwenden kannst um die Cells() zu referenzieren.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Worksheets(“Sheet2“).Range(Cells(i, sum_Jan11),Cells(i,
sum_Dec11)).Value=
Application.WorksheetFunction.Sum(Range(Cells(j, count_Jan11),
Cells(j, count_Dec11)))

Hallo Marina,

dir ist klar daß du nachher in
Range(Cells(i, sum_Jan11),Cells(i,sum_Dec11))
in allen Zellen den gleichen Wert stehen hast?
Ist das so gewollt?

Gruß
Reinhard