Thema Datum  Von Nutzer Rating
Antwort
Rot Index außerhalb des gültigen Bereichs
27.10.2013 17:16:50 VBA-Rookie
NotSolved
27.10.2013 17:18:19 VBA-Rookie
NotSolved
27.10.2013 19:34:44 Neuhäusler Korbinian
NotSolved
28.10.2013 12:13:02 VBA-Rookie
NotSolved
30.10.2013 10:12:57 Neuhäusler Korbinian
NotSolved

Ansicht des Beitrags:
Von:
VBA-Rookie
Datum:
27.10.2013 17:16:50
Views:
1780
Rating: Antwort:
  Ja
Thema:
Index außerhalb des gültigen Bereichs

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...:)

 

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Index außerhalb des gültigen Bereichs
27.10.2013 17:16:50 VBA-Rookie
NotSolved
27.10.2013 17:18:19 VBA-Rookie
NotSolved
27.10.2013 19:34:44 Neuhäusler Korbinian
NotSolved
28.10.2013 12:13:02 VBA-Rookie
NotSolved
30.10.2013 10:12:57 Neuhäusler Korbinian
NotSolved