Ohh vielen Dank, das ist super Verständlich, dein Code mit einer For / Next Schleife ist natürlich viel eleganter gelöst,
ein paar Sachen sind mir noch etwas unklar, ich habe mal versucht deinen Code mit der For/Next Schleife etwas zu vereinfachen, habe also gewisse Variablen (letzteB) rausgenommen, jetzt läuft die schleife allerdings nicht mehr richtig, es wird nur die der Mittelwert für die ersten beiden Male berechnet, danach geht er aber automatisch aus der Schleife raus (was er ja auch soll wenn man auf das "to" schaut. Wenn ich die "Anzahl" nach to lösche und einfach -3 rechne geht es.
Zur info: meine tabelle hat jetzt 8 zeilen mit überschrift, Zeile A hat als einzige Zeile Inhalt und das sind nur Zahlen.
hier nochmal dein veränderter Code
Sub test()
Dim ws As Worksheet 'Variablendeklaration fuer das Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1") 'der Variablen den Worksheetnamen geben Tabellenname anpassen
'das oben, um nicht immer den gesamten Workbook und Worksheetnamen angebe zu muessen
Dim LetzteA As Long 'Varaiblendeklaration fuer Zahelenwerte, hier fuer Zeilennummern
LetzteA = ws.Cells(Rows.Count, 1).End(xlUp).Row 'letzte benutzte Zeile in Spalte A finden
Dim i As Long 'Variablendeklaration fuer den Schleifenzaehler
Dim Anzahl As Long 'Varaiblendeklaration fuer Zahelenwerte, hier fuer die Anzahl
Anzahl = 4 'Wert fuer die Variable Anzahl angeben, Anzahl der Zahlen eingeben, aus denen der Durchschnitt berechnet werden soll
For i = 2 To LetzteA - Anzahl - 2 'Schleifenstart in Zeile 2, da Zeile 1 Ueberschrift ist
ws.Cells(1, 2) = Application.WorksheetFunction.Average(ws.Range("A" & i & ":A" & i + Anzahl - 1)) 'den Durchschnitt berechnen und in die erste freie Zelle in Spalte B eintragen
ws.Cells(1, 2).NumberFormat = ("0.0000000") 'die Zelle Formatieren mit 3 Nachkommastellen
Next 'naechsten Schleifendurchgang starten
End Sub
wie funktioniert ws.range("B2:C & LetzteA).Clear.Content ? und was meinst du mit Bereich B2:C ?
Beste Grüße Freddy
|