Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
700to704
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
700to704
700to704
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

falsche Funktionswerte nach Arbeitsblattwechsel

falsche Funktionswerte nach Arbeitsblattwechsel
02.12.2005 21:45:00
Peter
Hallo zusammen,
mein VBA-Problem besteht darin, dass ich eine Funktion geschrieben habe, die zwar funktioniert wie sie soll, nur dass bei einem Arbeitsblattwechsel "falsche" Parameter ausgewertet werden. Konkret soll die Funktion im jeweils verwendeten Arbeitsblatt die Standardabweichung einer Gruppe von Werten berechnen. Im Gegensatz zur Excelinternen Funktion sollen "Gewichtungsfaktoren" möglich sein, d.h. wie oft kommt welcher Wert in der auszuwertenden Liste vor.
Wechsle ich nun das Arbeitsblatt und editiere dort eine Zelle, so "saugt" die im anderen Arbeitsblatt verwendete Funktion die falschen Werte aus dem aktuellen Arbeitsblatt.
Vielen Dank schonmal für Eure Hilfe
Peter
Die Funktion sieht folgendermassen aus:
Private Function stabw(gewichtung As Range, werte As Range) As Double
stabw = 0
Dim summe As Double
Dim anzahl As Integer
Dim durchschnitt As Double
Dim i As Integer
Application.Volatile True
stabw = 0
anzahl = WorksheetFunction.Sum(gewichtung)
summe = WorksheetFunction.SumProduct(gewichtung, werte)
If anzahl "größer" 0 Then
durchschnitt = summe / anzahl
End If
If anzahl = 1 Then GoTo abbruch
For i = 0 To gewichtung.Rows.Count - 1
stabw = stabw + (Cells(gewichtung.Row + i, gewichtung.Column).Value) * _
((Cells(werte.Row + i, werte.Column).Value - durchschnitt) ^ 2)
Next i
stabw = (stabw / (anzahl - 1)) ^ 0.5
abbruch:

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: falsche Funktionswerte nach Arbeitsblattwechse
02.12.2005 22:15:37
Matthias
Hallo Peter,
schreibe mal statt

stabw = stabw + (Cells(gewichtung.Row + i, gewichtung.Column).Value) * _
((Cells(werte.Row + i, werte.Column).Value - durchschnitt) ^ 2)

so:

stabw = stabw + (gewichtung.Offset(1,0) * Werte.Offset(1,0) - durchschnitt) ^ 2)

Denn Cells ohne Voranstellung des Blattes bezieht sich immer auf das aktive Blatt!
Gruß Matthias
AW: falsche Funktionswerte nach Arbeitsblattwechse
05.12.2005 15:20:44
Peter
Hallo Matthias,
vielen Dank für Ihre schnelle Hilfe.
Leider hab ichs bis jetzt mit Ihrem Vorschlag nicht zusammengebracht, dass mir Excel den Wert über die .Offset-Variante ausrechnet.
Danke trotzdem
Peter
Anzeige
AW: falsche Funktionswerte nach Arbeitsblattwechse
05.12.2005 15:44:37
Peter
Hallo Matthias,
es schein an der Verwendung des Parameters bei
application.volatile gelegen zu haben.
ich hab aus dem "true" ein "false" gemacht und nun scheints korrekt zu funktionieren.
beste Grüße
Peter
AW: falsche Funktionswerte nach Arbeitsblattwechse
05.12.2005 15:44:46
Peter
Hallo Matthias,
es schein an der Verwendung des Parameters bei
application.volatile gelegen zu haben.
ich hab aus dem "true" ein "false" gemacht und nun scheints korrekt zu funktionieren.
beste Grüße
Peter
AW: falsche Funktionswerte nach Arbeitsblattwechse
05.12.2005 15:45:15
Peter
Hallo Matthias,
es schein an der Verwendung des Parameters bei
application.volatile gelegen zu haben.
ich hab aus dem "true" ein "false" gemacht und nun scheints korrekt zu funktionieren.
beste Grüße
Peter
Anzeige
AW: falsche Funktionswerte nach Arbeitsblattwechse
05.12.2005 15:45:19
Peter
Hallo Matthias,
es schein an der Verwendung des Parameters bei
application.volatile gelegen zu haben.
ich hab aus dem "true" ein "false" gemacht und nun scheints korrekt zu funktionieren.
beste Grüße
Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige