Anzeige
Archiv - Navigation
1404to1408
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Probleme bei Mittelwert

Probleme bei Mittelwert
30.01.2015 10:41:13
Loer
Hallo VBA-Profis,
ich setzte mich erst seit kurzem mit VBA auseinander und komme bei der Programmierung einfach nicht weiter.
In Spalte J stehen abwechseln 2 verschiedene zahlenwerte (Sollwerte).
Nun habe ich nach jedem Wechsel des Zahlenwertes eine leere Zeile eingefügt.
In Spalte H stehen sich ständig ändernde Istwerte, aus denen möchte ich den Mittelwert bilden. Dieser Mittelwerte steh nun Aktuelle in Spalte H in der Leeren zeile:
IstW MW SollW
5,6 7,1
7,8 7,1
9,1 7,1
6,9 7,1
7,4 1,1 2,0
2,1 2,0
1,8 2,0
3,5 2,0
2,7 2,0
2,2 .
.
.
Nun möchte ich aber den Mittelwert in der mittleren Spalte (Spalte I) so lange haben bis der Sollwert sich ändert
Also so
IstW MW SollW
5,6 7,4 7,1
7,8 7,4 7,1
9,1 7,4 7,1
6,9 7,4 7,1
1,1 2,2 2,0
2,1 2,2 2,0
1,8 2,2 2,0
3,5 2,2 2,0
2,7 2,2 2,0
.
.
.
Mein aktueller code ist folgender:

Sub Beides()
Dim lngRow As Long
Application.ScreenUpdating = False
For lngRow = Cells(Rows.Count, 10).End(xlUp).Row To 7 Step -1
If Cells(lngRow, 10).Value  Cells(lngRow - 1, 10).Value And _
Not IsEmpty(Cells(lngRow, 10)) And Not IsEmpty(Cells(lngRow - 1, 10)) Then _
Rows(lngRow).Insert Shift:=xlShiftDown
Next
Application.ScreenUpdating = True
Dim rngZelle As Range
Dim lngEZ As Long, lngLZ As Long
lngLZ = Cells(Rows.Count, 3).End(xlUp).Row  'Letzte Zeile der Spalte C ermitteln
lngEZ = 5 'Zeile mit der ersten auszuwertenden Zahl
For Each rngZelle In _
Union(Range("C5:C" & lngLZ).SpecialCells(xlCellTypeBlanks), Cells(lngLZ + 1, 3))
'MITTELWERT()-Funktion :
Cells(rngZelle.Row, 8).FormulaR1C1 = _
"=AVERAGE(R" & lngEZ & "C:R" & rngZelle.Row - 1 & "C)"
'Beginn des nächsten Zahlenblocks auf nächste Zeile setzen :
lngEZ = rngZelle.Row + 1
Next
'Speicher für Objektvariable wieder freigeben :
Set rngZelle = Nothing
End Sub

Wie kann ich das machen?
Vielen Dank für eure Hilfe vorac;)

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Probleme bei Mittelwert
30.01.2015 16:39:57
Christian
hallo,
so zB:

Option Explicit
Sub TestIt()
Dim i As Long
Dim lngLine As Long
Dim lngCnt As Long
Dim dblSum As Double
Dim dblMem As Double
With ThisWorkbook.Sheets("Tabelle1")
lngLine = 5
dblMem = .Cells(lngLine, 10)
For i = 5 To .Cells(.Rows.Count, 10).End(xlUp).Row + 1
If .Cells(i, 10)  dblMem Then
.Cells(lngLine, 9).Resize(i - lngLine).Value = dblSum / lngCnt
lngCnt = 1
lngLine = i
dblSum = .Cells(i, 8)
dblMem = .Cells(lngLine, 10)
Else
dblSum = dblSum + .Cells(i, 8)
lngCnt = lngCnt + 1
End If
Next
End With
End Sub
Gruß
Christian

Anzeige
AW: Probleme bei Mittelwert
03.02.2015 13:21:29
Loer
Vielen Dank hat super geklappt;)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige