ich habe ein makro geschrieben das folgendes tu soll:
die spalte (i) einer tabelle von unten nach oben „abtasten“ und sobald ein wert ungleich null da steht, den mittelwert der untesten (letzten) 100 zellen berechnen. und die mittelwert der jeweiligen zeile in die zelle (ac) schreibt.
habs mal so versucht:
Option Explicit
Sub average()
Dim i As Integer
For i = 0 To 65530
Range(„I65530“).End(xlUp).Offset(-i, 0).Rows.Select
If Selection 0 Then
Range(„AC100“).Formula = Selection / 100
Exit Sub
End If
Next
End Sub
irgenwie steckt aber der fehlerteufel drin
Hillllfffe
Hi Lunatic,
die spalte (i) einer tabelle von unten nach oben „abtasten“
und sobald ein wert ungleich null da steht, den mittelwert der
untesten (letzten) 100 zellen berechnen. und die mittelwert
der jeweiligen zeile in die zelle (ac) schreibt.
mir nicht klar was da genau geschehen soll.
irgenwie steckt aber der fehlerteufel drin
da steckt mehreres drin.
Hätte deine Schleife überhaupt funktioniert hättest du einen Überlauffehler bekommen.
Zeilen immer als Long deklarieren.
z.B. so asl Ansatz für deinen Code
Option Explicit
Sub MyAverage()
Dim Zei As Long, Letzte As Long
Letzte = Cells(Rows.Count, "I").End(xlUp).Row
For Zei = Letzte To 1 Step -1
If Cells(Zei, "I") = 0 Then
Cells(Zei, 29) = Application.Sum(Range(Cells(Zei, "I"), Cells(Letzte, "I"))) / (Letzte - Zei)
Exit For
End If
Next Zei
End Sub
Gruß
Reinhard
die spalte (i) einer tabelle von unten nach oben „abtasten“
und sobald ein wert ungleich null da steht, den mittelwert der
untesten (letzten) 100 zellen berechnen. und die mittelwert
der jeweiligen zeile in die zelle (ac) schreibt.
Wert in Spalte A
=wenn(A10;summe(a1:a100)/100;"")
in B1 einfügen und runterkopieren fertig
reicht das nicht?
LG Alex