Hallo Leute!
Ich habe da ein Problem mit meinem Vba-Code zur Mittelwert-und Standardabweichungsberechnung und hoffe, ihr könnt mir da behilflich sein!
Ich möchte gern die Mittel- sowie Standardabweichungswerte aus einer Tabelle mit Messwerten berechnen. Das ganze soll dynamisch über ein zweidimensionales Array erfolgen, das heißt, wenn ich Messwerte hinzufüge, soll das Programm automatisch die neuen Werte berechnen. Wenn ich nun mein Programm starte bekomme ich die Fehlermeldung "Index außerhalb des gültigen Bereichs". Ich weiß nicht mehr weiter, hat jemand von Euch eine Idee!?
Hier der aktuelle Stand zur Mittelwertberechnung:
Option Explicit
Dim mw() As Double 'dynamisches Array mw 2-dimensional
Dim mitwert() As Double
Dim n As Integer 'Stichprobenumfang
Dim m As Integer 'Anzahl der Stichproben
Dim numpruefi As Variant
Dim numpruefj As Variant
Dim xlzellbereich As Range
Dim i As Integer
Dim j As Integer
Dim imax As Integer
Dim jmax As Integer
Dim k As Integer
Dim l As Integer
Dim kmax As Integer
Dim lmax As Integer
'Dim mw2() As Double
Dim o As Integer
Dim p As Integer
Sub werte_einlesen()
'Tabelle1
j = 0
Do
i = 0
Do
numpruefi = (Sheets("Tabelle1").Cells(9 + j, 3 + i))
If Not IsEmpty(numpruefi) Then
ReDim mw(j, i)
imax = i
i = i + 1
n = i
End If
Loop Until IsEmpty(numpruefi)
jmax = j
j = j + 1
numpruefj = (Sheets("Tabelle1").Cells(9 + j, 3))
m = j
Loop Until IsEmpty(numpruefj)
'Einlesen
For j = 0 To jmax
For i = 0 To imax
mw(j, i) = Sheets("Tabelle1").Cells(9 + j, 3 + i)
Next i
Next j
'Ausgabebereich löschen
Set xlzellbereich = Sheets("tabelle1").Cells(20 + j, 3 + i)
xlzellbereich.ClearContents
'Ausgabe
Sheets("Tabelle1").Cells(20, 8) = jmax
Sheets("Tabelle1").Cells(20, 9) = imax
Sheets("Tabelle1").Cells(21, 8) = m
Sheets("Tabelle1").Cells(21, 9) = n
For j = 0 To jmax
For i = 0 To imax
Sheets("Tabelle1").Cells(20 + j, 3 + i) = mw(j, i)
Next i
Next j
'Tabelle2
ReDim mitwert(j)
For l = 0 To jmax
For i = 0 To imax
Sheets("Tabelle2").Cells(9 + l, 3 + i) = mw(l, i)
Next i
Call mittelwert 'Berechnung des Mittelwertes
'Call standardabweichung 'Berechnung der Standardabweichung der Stichprobe
Sheets("Tabelle2").Cells(9, 11 + l) = mitwert(l)
Next l
End Sub
Sub mittelwert() 'Berechnung des Mittelwertes
Dim summw As Double 'Summe aller Messwerte
'Startwerte setzen
summw = 0
'Berechnen
For k = 0 To imax
summw = summw + mw(l, k)
Next k
mitwert(l) = summw / n
End Sub
Danke und einen schönen Abend Euch...:)
|